aiLabel:

rxjava原理 编程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(),与事件源产生联系。

天马行空 2023-09-20 23:50:37
本网站引用、摘录或转载上述内容仅供网站访问者交流或参考,文中观点或信息与爱问公司无关,与之相关的任何事务以及法律责任均与爱问公司无关。

最新回答 换一换

1

问:南昌市红谷滩区属于什么区

答:
答:红谷滩区是江西省南昌市市辖区,所以红谷滩区属于江西省南昌市,不属于市区政府管辖。2000年1月,红谷滩中心区规划范围4.28平方千米。2007年8月,新建县生米镇安丰、富乡、斗门、渔业等4个行政村成建制划归红谷滩新区管理,调整后红谷滩新区辖区面积78平方千米。2012年2月,新建县生米镇成建制划归红谷滩新区管辖,调整后辖区面积175平方千米。2019年12月,红谷滩正式设区,隶属于南昌市。红谷滩区位于江西省中北部、南昌市西北部,赣江下游西岸、鄱阳湖南岸,北接南昌经济技术开发区,东临东湖区、西湖区,西南靠新建区。红谷滩区原为赣江的冲积平原,红谷滩区常态地貌类型以冲积平原、滨湖为主。红谷滩区属于亚热带季风气候,气候湿润温和、雨热充足,年均气温17℃,年降雨量1600毫米至1700毫米,为农业生产提供了有利气象条件。红谷滩区傍依几十千米赣江沿线,拥有赣江、乌沙河、前湖、九龙湖等河湖,还有多条水系明渠、多个水库和山塘。
5

古铜婚是多少年 2022-10-28

相关推荐

惠州站就是惠州北站吗

惠州站不是惠州北站。这两个火车站分别居于不同的位置,惠州站位于惠州市惠城区小金口街道惠州大道57号,而惠州北站位于惠州市惠城区的小街口街道白石村。而且惠州站也就是惠州火车站,...
详情>
提问时间:2022-10-28

美国最高的山

美国最高的山是德纳里山。德纳里山(原名麦金莱山)位于美国阿拉斯加州的中南部,是阿拉斯加山脉的中段,它海拔6193米,为北美洲的第一高峰。麦金莱山2015年08月30日正式改名...
详情>
提问时间:2022-11-01

海南海花岛在什么地方

海南海花岛在儋州市滨海新区第四组团。海花岛,地处海南西部、排浦港与洋浦港之间的洋浦湾区域,南起排浦镇,北至白马井镇,距离海岸约600米,总跨度约6.8千米。海花岛是一座人工岛...
详情>
提问时间:2022-11-07

航拍中国第四季哪些省

航拍中国第四季选取辽宁、湖北、重庆、河南、澳门、北京、广西、青海、香港、台湾、西藏共11个地区。《航拍中国》第四季继续延用前三季的拍摄手法,全部由空中航拍完成,以各自不同的主...
详情>
提问时间:2022-11-08

护理液可以带上飞机吗

不超过100毫升的护理液可以带上飞机,超过100毫升的护理液不可以带上飞机。中国民用航空局规定:乘坐国内航班的旅客一律禁止随身携带液态物品,但可办理交运,其包装应符合民航运输...
详情>
提问时间:2022-11-29

青岛市东部的是什么山

青岛市东部的是崂山。崂山位于山东半岛南部的黄海之滨,地处青岛市东南方向,山势陡峻,主峰海拔1132.7米。从崂顶向西、北一直绵延至青岛市市区。距青岛市中心40余公里。崂山,东...
详情>
提问时间:2022-11-07

兴山县属于哪个市

兴山县隶属于湖北省宜昌市。1949年8月兴山县属湖北省宜昌地区,1992年3月隶属宜昌市人民政府。兴山县在湖北省西部,位于长江西陵峡北侧,地处巫山山脉与荆山山脉之间,东临宜昌...
详情>
提问时间:2022-12-08

光绪二十三年是哪一年

光绪23年是公元1897年。清朝第十一位皇帝、清军入关后第九位皇帝清德宗景皇帝爱新觉罗·载湉(1871年8月14日至1908年11月14日)在位期间始终使用“光绪”年号,起止...
详情>
提问时间:2022-10-24

佤邦面积

佤邦面积为3万平方公里。佤邦,或称缅甸第二特区或掸邦第二特区,分为“北佤”和“南佤”两部分,北部地区位于缅甸东北部,面积1.7万平方公里,南部地区与泰国交界,面积1.3万平方...
详情>
提问时间:2022-11-07

四川雅安属于成都吗

雅安市是四川省辖地级市,所以雅安市属于四川省,不属于成都。1950年,雅安解放,设雅安专区,雅安为西康省省会。1951年,雅安专区改称雅安专署,并以汉源、越西、冕宁各一部分新...
详情>
提问时间:2022-12-08

珠海市唐家湾镇属于哪个区

唐家湾镇隶属于广东省珠海市珠海高新技术产业开发区。1953年5月1日,珠海县成立,县政府设在唐家。1955年7月,中山县第一区改称为唐家区。1958年9月,珠海县撤销镇乡。1...
详情>
提问时间:2022-10-28

巴西奥运会是哪一年

巴西奥运会在2016年举办。巴西奥运会即第三十一届夏季奥林匹克运动会,又称2016年里约热内卢奥运会,于2016年8月5日到2016年8月21日在巴西里约热内卢举行。2016...
详情>
提问时间:2022-12-06

河北省省会的变迁历史

河北省省会的变迁历史:元大都——北京——大名府(大名县)——真定府(正定县)——保定府(保定)——天津——北平(北京)——天津——保定——天津——保定——石家庄。河北的省会变...
详情>
提问时间:2022-10-28

腊肉能带上飞机吗

乘坐国内的航班腊肉可以带上飞机,乘坐国外的航班腊肉不可以带上飞机。在国内的航班的规定内腊肉并不属于违禁品,是可以带上飞机的,但是腊肉带上飞机后需要密封包装好,因为飞机中机舱的...
详情>
提问时间:2022-11-29