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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL数据库在高并发下的优化方案
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- Docker容器配置,解决镜像无法拉取问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker快速安装Oracle11G,搭建oracle11g学习环境