1.定义
- Rxjava在github上面的介绍
RxJava:a library for composing asynchronous and event-based programs using observable sequences for the Java VM
// 翻译:RxJava 是一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库
2.作用
由于在Android开发中,只能够在UI线程进行Ui的更新,而UI线程又不能执行耗时操作,像请求网络数据的时候必须在非UI线程进行,所以就需要用一种方式去实现UI线程与非UI线程的切换,从而实现更新UI的效果,而Rxjava就是实现异步操作一个库
3.特点
由于 Rxjava的使用方式:基于事件流的链式调用
- 使用简单
- 实现优雅
- 逻辑简洁
可能这些特点在业务需求不复杂的情况下体现不出来,而且你还会觉得Rxjava的编程方式很复杂,但当你遇到业务需求很复杂的时候,这个时候Rxjava就体现出它的优势了,因为Rxjava他始终保持这种链式调用,并用其强大的操作符进行切换.
4.原理介绍
引入顾客去餐厅吃饭的例子
顾客——拿菜单点菜——点完菜呼叫服务员——通过服务员将菜单给到厨房——厨房接收到客户点的菜——做菜
这里面涉及到四个角色:顾客(被观察者),服务员(订阅),厨房(观察者),菜式(事件),Rxjava的底层便是采用观察者模式实现的:
- 被观察者(Observable): 负责生产事件
2, 观察者(Observer): 负责接收事件,并做出响应动作
3,订阅(Subscribe): 连接被观察者和观察者,在未订阅之前,被观察者和观察者之间是没有联系的,需要通过订阅去建立连接
4,事件(Event): 观察者和被观察者之间沟通的载体
如下图:
流程图5.Rxjava强大的操作符
-
创建操作符
示意图 -
变换操作符
示意图 -
组合 / 合并操作符
示意图 -
功能性操作符
示意图 -
过滤操作符
示意图 -
条件 / 布尔操作符
示意图
6.总结
示意图后续待更新....
附上一篇传送门,写的很好,初学Rxjava2.0学习者的福音
网友评论