一 · 定义:
-
即RxJava原理可总结为:被观察者 (Observable) 通过 订阅(Subscribe) 按顺序发送事件 给观察者 (Observer), 观察者(Observer) 按顺序接收事件 & 作出对应的响应动作。
二 · 使用场景
1. 因为其优雅清晰的链式操作经常用在网络请求中实现线程调度,在网络请求成功后通知观察者进行相应的类似页面刷新等操作。
2.被观察者发送事件与观察者接收事件的速度不匹配的场景
三 · 背压策略( Flowable RxJava2中加入)
1.背压策略就是通过观察者就收事件的能力去将部分事件放入缓存区 减少丢失事件的可能性
2.RxJava1中对背压策略的实现使用的队列的方式,如果发送事件的速度大于接收事件的速度就会导致队列中的数目大于Android默认的缓存大小从而导致很多事件无法被有效背压造成数据丢失。
3.Flowable将默认的缓存大小由16改成了128可以有效的实现背压策略 注意:在Flowable和Observable的选择上应该选择适用于实际开发时的观察者 ,因为Flowable占用的资源会比Observable更多,如果需要使用背压策略的时候Flowable就会比Observable有更小的可能造成OOM异常。