rxjava原理
1、RxJava是一种基于观察者模式的响应式编程框架,其中的主要角色有:Observable 是RxJava描述的事件流,在链式调用中非常清晰,事件从创建到加工处理再到被订阅者接收到,就是一个接一个的Observable形成的一个事件流。
2、每一步方法的调用,都会返回一个新的Observable给下一步,这个是RxJava源码的基础。同样是链式调用,但它与我们常见的Builder模式不太一样,每个操作符,每次线程切换,每步都会新建一个Observable而非直接加工上一步的Observable返回给下一步。
3、ObservableOnSubscribe 是这个事件流的源头,下面我们称之为事件源,一般由我们自己创建并传入。我们创建时,需要重写其subscribe()方法,为了和Observable中的subscribe()方法区别,我们将在下面贴出的代码中将其改名为call()。
4、我们在调用链中有时会用到各种操作符进行一些变换,事实上每个操作符都会重写这么一个call()方法,相对于我们创建事件源时在这里写入的源业务代码,这些操作符在这里要做的事是由RxJava钦定的,一般是连接事件流的上下游。在这里我们将准备好被订阅的数据,并调用subscribe()参数中ObservableEmitter的onNext(),onCompleted()或onError()通知订阅者数据准备情况。
5、Observer 是整个事件流的订阅者,也就是说,它将会订阅前面事件创建,加工以后的最终结果。它也是由我们创建的,我们将要重写它的onNext(),onCompleted(),onError()和onSubscribe(),在接下来的分析中我们将简化一些,只关注onNext()。我们创建出了Observer以后,将会使用经过上面所有步骤的最后一步生成的Observable,调用它的subscribe(),与事件源产生联系。
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
保湿霜哪个牌子好
契尔氏高保湿霜契尔氏的这款保湿霜我也用很久了,我大学时期用过...生日祝福语送闺蜜
不是每个清晨都有朝阳,不是每个夜晚都有清凉,不是每个帆船都能...福建闽侯县的特产是什么
闽侯县名胜古迹甚多,旗山雪峰寺五虎山十八重溪昙石山文化遗址等...微波炉烤牛排怎么做呀
先把牛排放入佐料里浸泡小时左右,使调料浸入把蔬菜洗净,控水。...沪蓉高速经过哪些城市
沪蓉高速横贯中国东西,东起上海市,西达四川省成都市,自东向西...荞麦枕头的危害是什么
荞麦枕头的危害是容易局部细菌滋生,诱发皮肤性疾病荞麦皮是偏寒...ps3hdmi黑屏怎么回事
连接线出现异常,去换一根线。一般情况下,或者电视是没问题的,...一般电热水壶家用的功率是多少
一般电热水壶的功率在瓦到瓦之间,一般情况下的电水壶在使用一个...红酒开出来可以放几天
红酒开瓶后在冰箱中可以保存个星期,但是记得一定要把软木塞塞回...什么融什么梨的成语
孔融让梨出自后汉书孔融传李贤注融家传曰年四岁时,与诸兄共食梨...自学考试学籍档案问题
自考生在学习期间的档案统称为学籍档案,毕业时,自考生的学籍档...明日方舟提纯源岩怎么刷
明日方舟手游中提纯源岩怎么刷很多玩家不清楚如何才能快速获得提...新干粉灭火器多久年检一次
干粉灭火器从出厂到第五年需要检查一次,之后每两年就要检测。有...别无选择什么意思
是没有别的选择余地的意思。成语出处玛拉沁夫茫茫的草原第三卷我...怎么查看电脑是win7还是win10
演示机型华为系统版本从开机画面看,和系统开机画面差别很大,开...