Rxjava2 学习记录。

学习资源来自:https://www.jianshu.com/p/464fa02522  所有资源来自该大佬。

compile'io.reactivex.rxjava2:rxjava:2.0.1

'compile'io.reactivex.rxjava2:rxandroid:2.0.1'注:

as版本为3.1.4 依赖发生变化:complie 变为implementation即可。


观察者模式:属于行为模式的一种,它定义一重一对多的依赖关系,让多个观察者对象同时监听一个对象。这个对象发生变化时候,会通知所有的观察者对象,是他们能够自动的更新自己。

Rxjava 上游为Observable 下游为Observer,他们之间的联系用subscribe()。

Disposable :rxjava容易造成内存泄漏,也就是说订阅事件后没有及时取消订阅,导致activity和fragment销毁后仍然占用内存,无法释放。而disposable可以取消订阅:

     两种方式取消订阅:

     1.CompositeDisposable 是一个disposable 的一个容器。用法:创建baseActivity 用ComposableDisposable 来管理订阅事件disposable,然后在activity销毁的时候, 用compositeDisposalbe.dispose() 方法却断所有订阅事件,防止内存泄漏。在onError和onComplete后调用disposable.dispolse方法。

2.开源库RxLifecyclee


操作符:

map:作用是它的作用是对上游发送的每一个事件应用一个函数,使得每一个事件都按照指定的函数去变化。





FlatMap: 将一个发送事件的上游observable变换为多个发送事件的observalbes,然后将他们发射的事件合并后放在一个单独的observable里面。 注: flatmap 并不保证事件的顺序,如果想要保证 用concatMap.


zip 通过一个函数将多个observable 发送事件结合到一起,然后发送这些组合到一起的事件,它按照严格的顺序应用这个函数,它只是发射与发射数据项最少的那个observable一样多的数据。

你可能感兴趣的:(Rxjava2 学习记录。)