RxJava2 / RxAndroid2操作符distinct去重
RxJava2 / RxAndroid2操作符distinct去重
distinct去除重复的数据,例如:
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, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 9
}; //故意设置若干重复的数据,等待去重复数据
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
test();
}
private void test() {
DisposableObserver disposableObserver = new DisposableObserver<Integer>() {
@Override
public void onNext(Integer i) {
Log.d(TAG, "#####开始#####");
Log.d("数据", String.valueOf(i));
Log.d(TAG, "#####结束#####");
}
@Override
public void onComplete() {
Log.d(TAG, "onComplete");
}
@Override
public void onError(Throwable e) {
Log.e(TAG, e.toString(), e);
}
};
Observable<Integer> observable = Observable.fromArray(test_data);
mCompositeDisposable.add(observable
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.distinct()
.subscribeWith(disposableObserver));
}
@Override
protected void onDestroy() {
super.onDestroy();
// 如果退出程序,就清除后台任务
mCompositeDisposable.clear();
}
}
代码输出:
05-18 10:19:32.361 2346-2346/zhangphil.app D/MainActivity: #####开始#####
05-18 10:19:32.361 2346-2346/zhangphil.app D/数据: 1
05-18 10:19:32.361 2346-2346/zhangphil.app D/MainActivity: #####结束#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####开始#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/数据: 2
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####结束#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####开始#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/数据: 3
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####结束#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####开始#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/数据: 4
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####结束#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####开始#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/数据: 5
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####结束#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####开始#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/数据: 6
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####结束#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####开始#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/数据: 7
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####结束#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####开始#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/数据: 8
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####结束#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####开始#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/数据: 9
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: #####结束#####
05-18 10:19:32.362 2346-2346/zhangphil.app D/MainActivity: onComplete

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Google 最新的 Fuchsia OS【科技讯息摘要】
转自:http://www.cnblogs.com/pied/p/5771782.html 就是看到篇报道,有点好奇,就去FQ挖了点东西回来。 我似乎已开始就抓到了重点,没错,就是 LK 。 LK 是Travis Geiselbrecht 写的一个针对 ARM 的嵌入式操作系统,开源的。点击到它的->Github。从作者的 ->个人主页看,他是早期 iOS 开发者?而且好像在 google 也待蛮久了。 Magenta (Google 还有一个项目也用这个名字,研究机器学习来制作音乐的)是从 LK 出发,提供多进程、安全空间等支持的,针对大型机(有很多 RAM,接口丰富)的内核。然后, LK for embedded + Magenta 就是报道里提到的 Fuchisa OS 系统了。 不过,粗略看了下,LK 似乎是已经有过应用案例了,代码仓库里还提供了在 qemu 下虚拟运行该系统的解决方案。 但是 Magenta 估计也就处在粗略可用的状态,比如,可能有开发人员写过它的贪吃蛇游戏了。不过,Magenta 的提交貌似挺频繁的,最近的提交都来自 Brian Swetland...
-
下一篇
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 ...
相关文章
文章评论
共有0条评论来说两句吧...