RxJava2复习总结:

最近开始学习RxJava 主要看 RxJava2 水管教程  觉得这个老哥说的很通俗易懂 于是趁闲暇之余 把学到的一点点知识大概总结一下 存着以后不懂的再看 不会写博客 就随便记一下 等以后忘了 再回忆

引入RxJava库 版本号去github查   RxJava Github

1:RxJava是上游发送事件  下游接收事件的  具体流程引用水管教程的图

2:上游可以发送无数个OnNext方法 下游也可以接受无数个 但是 当上游发送了一个OnComplete后 下游就不会继续接收了

比如下面的这个 下游只会收到 1 2 3 和 OnComplete  虽然 上游还会继续发送 4  但是 下游并不会继续接收

(OnError 后 上游也是会 继续发送 但下游不会继续接收 OnComplete 和 OnError必须唯一 并且互斥  )


代码图

3:RxJava 如何切换线程?

subscribeOn()  和 observeOn()  前者是 设置上游线程 后者则是下游的线程 

tips: Rxjava 可以多次设置上下游的线程  但是 上游 只有第一次设置 才是有效线程 而下游 每调用一次 都会切换一次

切换线程


Rxjava默认线程池

4:Map 操作符 将上游的操作类型 转成其他类型 


map的类型

5:flatMap  和 concatMap 都是将上游多个事件变换成一个事件 发送至下游  两个唯一的区别就是 flatMap是无序的 而concatMap 是严格按照上游事件顺序


6:ZIP  :打包合并多条请求 每个事件只能合并一次 下游收到的消息数量 为 上游事件中 最少那条管道的 数量

即:以下代码 最终只会打出 两条 分别为:2 和 4 

具体操作


                                                        要断网了 未完待续....

你可能感兴趣的:(RxJava2复习总结:)