RxJava2 / RxAndroid2操作符distinct与distinctUntilChanged去重结果异同
代码例如:
package zhangphil.app; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.util.Log; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.observers.DisposableObserver; import io.reactivex.schedulers.Schedulers; public class MainActivity extends AppCompatActivity { private final String TAG = getClass().getSimpleName(); private CompositeDisposable mCompositeDisposable = new CompositeDisposable(); private Integer[] test_data = { 1, 1, 2, 3, 4, 5, 2, 5, 3, 6, 4, 7, 7, 8, 9 }; // 故意设置若干重复的数据,等待去重复数据 @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); test(); } private void test() { Observable<Integer> observable1 = Observable.fromArray(test_data); Observable<Integer> observable2 = Observable.fromArray(test_data); mCompositeDisposable.addAll(observable1 .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .distinct() .subscribeWith(getObserver(0)), observable2 .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .distinctUntilChanged() .subscribeWith(getObserver(1))); } private DisposableObserver getObserver(final int id) { DisposableObserver disposableObserver = new DisposableObserver<Object>() { @Override public void onNext(Object o) { Log.d(id + TAG, "#####开始#####"); Log.d(id + "数据", String.valueOf(o)); Log.d(id + TAG, "#####结束#####"); } @Override public void onComplete() { Log.d(id + TAG, "onComplete"); } @Override public void onError(Throwable e) { Log.e(id + TAG, e.toString(), e); } }; return disposableObserver; } @Override protected void onDestroy() { super.onDestroy(); // 如果退出程序,就清除后台任务 mCompositeDisposable.clear(); } }
运行结果输出:
05-18 10:57:55.069 4374-4374/zhangphil.app D/0MainActivity: #####开始##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 1 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 2 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 3 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 4 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 5 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 6 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 7 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 8 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####开始##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0数据: 9 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: #####结束##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/0MainActivity: onComplete 05-18 10:57:55.070 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/1数据: 1 05-18 10:57:55.070 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/1数据: 2 05-18 10:57:55.070 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.070 4374-4374/zhangphil.app D/1数据: 3 05-18 10:57:55.070 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 4 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 5 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 2 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 5 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 3 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 6 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 4 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 7 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 8 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####开始##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1数据: 9 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: #####结束##### 05-18 10:57:55.071 4374-4374/zhangphil.app D/1MainActivity: onComplete
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
RxJava2 / RxAndroid2操作符ofType:根据类型选择输出结果
RxJava2 / RxAndroid2操作符ofType:根据类型选择输出结果 例如: package zhangphil.app; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.util.Log; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.observers.DisposableObserver; import io.reactivex.schedulers.Schedulers; public class MainActivity extends AppCompatActivity ...
- 下一篇
ionic/cordova热部署
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/inforstack/article/details/72462150 简介 Cordova热代码推送插件提供了在应用程序中执行基于Web的内容的自动更新的功能。基本上,www可以使用此插件更新存储在Cordova项目文件夹中的所有内容。 当您在商店上发布应用程序时,您可以将所有网页内容都包含在其中:html文件,JavaScript代码,图像等。有两种方法可以更新它: 在商店上发布新版本的应用程序。但是需要时间,尤其是App Store。 牺牲离线功能并在线加载所有网页。但是一旦Internet连接断开 - 应用程序将不起作用。 这个插件旨在解决所有这些。当用户第一次启动应用程序时 - 将所有Web文件复制到外部存储器上。从这一刻起,所有页面都从外部文件夹加载,而不是从打包的装载。每个启动插件都连接到您的服务器,并检查是否有新版本的Web项目可供下载。如果是这样 - 它将其加载到设备上,并在下次启动时安装。 因此,您的应用程序尽快接收到Web内容的更新,并且仍然可以在离线模式下工作。此外...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路