Rxjava2总结之基础认知
来源:互联网 发布:苹果电脑浏览图片软件 编辑:程序博客网 时间:2024/06/05 03:43
目录
- 目录
- RxJava2基础认知
- 形式正确的有限Observable
- Disposable类
- CompositeDisposable类
- 基础概念
- Scheduler scheduler
- Callable bufferSupplier自定义装载的容器
RxJava2基础认知
形式正确的有限Observable
调用观察者的onCompleted正好一次或者它的onError正好一次,而且此后不能再调用观察者的任何其它方法。如果onComplete或者onError走任何一个都会主动解除订阅关系.
- 如果解除订阅关系以后在发射 onError 则会 报错;而发射onComplete则不会
- 注意解除订阅关系 还是可以发射 onNext
Disposable类
- dispose():主动解除订阅
- isDisposed():查询是否解除订阅 true 代表 已经解除订阅
CompositeDisposable类
可以快速解除所有添加的Disposable类.每当我们得到一个Disposable时就调用CompositeDisposable.add()将它添加到容器中, 在退出的时候, 调用CompositeDisposable.clear() 即可快速解除.
案例代码如下:
CompositeDisposable compositeDisposable=new CompositeDisposable();Observable.create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(ObservableEmitter<Integer> emitter) throws Exception { emitter.onNext(1); emitter.onComplete();或者 emitter.onError(new Throwable("O__O ")); } }).subscribe(new Observer<Integer>() { private Disposable mDisposable; @Override public void onSubscribe(Disposable d) { <!-- 订阅 --> mDisposable = d; <!-- 添加到容器中 --> compositeDisposable.add(d); } @Override public void onNext(Integer value) { <!-- 判断mDisposable.isDisposed()如果解除了则不需要处理 --> } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }); <!-- 解除所有订阅者 --> compositeDisposable.clear();
基础概念
Scheduler scheduler
timer() alt+点击timer可查看 关于timer的方法 可以看到时候有这个参数的变体!
Callable bufferSupplier:自定义装载的容器
Observable.range(1, 10) //() -> new ArrayList<>() bufferSupplier .buffer(2, 1,() -> new ArrayList<>()) .subscribe(integers -> System.out.println(integers));
阅读全文
1 0
- Rxjava2总结之基础认知
- 零基础学习RxJava2后的总结
- RxJava2总结之操作详解(一)
- RxJava2总结之操作详解(二)
- RxJava2总结之操作详解(三)
- RxJava2总结之Subjects、Single与Completable
- 从零开始的RxJava之旅(4)---- RxJava2总结
- RxJava2总结之自定义操作符与实用技巧
- RxJava2 基础详解
- RxJava2.0学习总结
- Rxjava2.x 封装总结
- Python新手学习基础之数据结构-对数据结构的认知
- 对于 RxJava2 的 认知与直接应用(一)
- RxJava2.0之Android
- 基础正则表达式认知
- hibernate基础认知
- io流基础认知
- C#基础认知笔记
- yii2 join 连表查询得不到关联表数据
- const指针
- 面试相关
- 虚方法与抽象方法有什么区别
- Hi3518EV200学习记录之环境搭建
- Rxjava2总结之基础认知
- TextBox控件获取焦点并光标正确闪烁
- 深度揭秘安全领域的那些“大牛” 竟过半在360
- 百度文库推广引流技巧
- win7+tensorflow(cpu)
- SQL中in和exists的区别
- 高性能Mysql主从架构的复制原理及配置详解
- Linux中yum利用Axel开启多线程下载,加速
- pip is configured with locations that require TLS/SSL, however the ssl module in Python is not avail