如果一个Observable 中没有任何的 Observer ,那么这个Observable是不会发出任何事件的
第三点说明:
在RxJava 中 Obseravable 有两种启动方式:热启动 和 冷启动
热启动 Obseravable在任何时候都会发送消息,即使没有任何观察者监听它
冷启动 Obseravable只有在至少有一个监听者时才会发送消息
热启动平时用不到,所以我们工作中用到的都是冷启动。
====================================================================================
RxJava的实现主要有如下三步:
第一步:创建观察者Observer。
Observer 即观察者,它决定事件触发的时候将有怎样的行为。注意:Observer是 个接口。
第二步:创建被观察者Observable。
第三步:Subscribe(订阅)(被观察者Observable订阅观察者Observer,注意:不同于普通观察者,这里是被观察者订阅观察者)。
创建 Observable 和 Observer 之后,再 subscribe() 法将它们联结起来,整条链子就可以 作 。代码形式很简单:
所以贴出之前实现过的代码:
编译运行:
这时制造一个异常再看下输出:
编译运行:
从打印中可以看出,onError()和onCompleted()是不共戴天滴。
除 Observer 接口之外,RxJava 还内置了一个实现 Observer 的抽象类:Subscriber(发 [səb’skraɪbɚ])。 Subscriber 对 Observer 接口进行了一些扩展,但他们的基本使用方式是完全一样的:
编译运行:
那既然观察者有两个:Observer和Subscriber,那这两者有啥区别呢?当然是有区别滴,不过在未来会进行学习,这里先有个印象。
另外在Rxjava中,如果对于事件回调中,只想要onNext()方法,onError()和onCompleted()都不需要,有木有简化方案呢?当然有:
而之前我们创建Observable是通过它:
所以简化版采用just操作符来,如下:
编译运行:
下面改用Action1类来达到我们所要的需求:
编译运行:
但是,官方并不推荐使用该类来简化操作,因为Action1并不支持背压(BackPressure),而产生的大至原因是由于Rxjava的事件产生过快时导致。
参考https://www.cnblogs.com/webor2006/p/7531713.html
https://blog.csdn.net/u011033906/article/details/58614549
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680
最后的最后
对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的
最后,互联网不存在所谓的寒冬,只是你没有努力罢了!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
]
最后,互联网不存在所谓的寒冬,只是你没有努力罢了!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!