Rxjava,由于其基于事件流的链式调用,逻辑简洁 & 使用简单的特点,深受各大 Android 开发者的欢迎.
Github 截图
如果还不了解 RxJava,请看文章: Android:这是一篇 清晰 & 易懂的 Rxjava 入门教程
RxJava 如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求
今天,我将为大家献上一份 RxJava 操作符的详细使用攻略,希望你们会喜欢.
本系列文章主要基于 Rxjava 2.0
接下来的时间,我将持续推出 Android 中 Rxjava 2.0 的一系列文章,包括原理,操作符,应用场景,背压等等 ,有兴趣可以继续关注 Carson_Ho 的安卓开发笔记 !!
示意图
本文所有代码 Demo 均存放在 Carson_Ho 的 Github 地址
目录
示意图
1. 简介
RxJava 操作符的具体简介如下:
示意图
2. 类型
RxJava 功能强大,所以其对应的操作符的类型也非常多
根据功能作用的不同,RxJava 的操作符分类如下:
示意图
下面,我将对每类的操作符进行详细讲解
3. 操作符详解
注:在使用 RxJava 2 操作符前,记得在项目的 Gradle 中添加依赖:
3.1 创建操作符
dependencies {
compile 'io.reactivex.rxjava2:rxjava:2.0.7'
// 注:RxJava2 与 RxJava1 不能共存,即依赖不能同时存在
}
作用
创建 被观察者( Observable) 对象 & 发送事件.
应用场景
示意图
类型
根据上述应用场景,创建操作符的类型包括:
示意图
具体操作符 & 应用场景 详细介绍
Android RxJava:最基础的操作符详解 - 创建操作符
实际开发需求案例
下面,我将讲解创建操作符的 1 个常见实际需求案例:网络请求轮询
该例子将结合 Retrofit 和 RxJava 进行讲解
具体请看文章: Android RxJava 实际应用讲解:(无条件)网络请求轮询
3.2 变换操作符
作用
对事件序列中的事件 / 整个事件序列 进行加工处理(即变换),使得其转变成不同的事件 / 整个事件序列
具体原理
示意图
应用场景
嵌套回调(Callback hell)
类型
根据上述应用场景,常见的变换操作符类型包括:
示意图
具体操作符 & 应用场景 详细介绍
Android RxJava:图文详解 变换操作符
实际开发需求案例
下面,我将讲解变换操作符的 1 个常见实际需求案例:网络请求嵌套回调
该例子将结合 Retrofit 和 RxJava 进行讲解
具体请看文章: Android RxJava 实际应用讲解:网络请求嵌套回调
3.3 组合 / 合并操作符
作用
组合 多个被观察者(Observable) & 合并需要发送的事件
应用场景
组合多个被观察者
合并多个事件
发送事件前追加发送事件
统计发送事件数量
类型
根据上述应用场景,常见的组合 / 合并操作符 主要有:
示意图
具体操作符 & 应用场景 详细介绍
Android RxJava:组合 / 合并操作符 详细教程
实际开发需求案例
下面,我将讲解组合操作符的常见实际需求案例
该例子将结合 Retrofit 和 RxJava 进行讲解
Android RxJava 实际应用讲解:合并数据源
Android RxJava 实际应用讲解:从磁盘 / 内存缓存中 获取缓存数据
Android RxJava 实际应用讲解:联合判断
3.4 功能性操作符
作用
辅助被观察者(Observable) 在发送事件时实现一些功能性需求
实际应用场景
连接(订阅) 观察者 & 被观察者
线程调度(切换)
错误处理
事件生命周期操作
延时操作
重复发送操作
类型
根据上述应用场景,常见的功能性操作符 主要有:
示意图
具体操作符 & 应用场景 详细介绍
Android RxJava:功能性操作符 全面讲解
实际开发需求案例
下面,我将讲解组合操作符的常见实际需求案例
该例子将结合 Retrofit 和 RxJava 进行讲解
Android RxJava:细说 线程控制(切换 / 调度 )(含 Retrofit 实例讲解)
Android RxJava 实际应用讲解:网络请求出错重连(结合 Retrofit)
Android RxJava 实际应用讲解:(有条件)网络请求轮询(结合 Retrofit)
3.5 过滤操作符
作用
过滤 / 筛选 被观察者(Observable)发送的事件 & 观察者 (Observer)接收的事件
应用场景
根据 指定条件 过滤事件
根据 指定事件数量 过滤事件
根据 指定时间 过滤事件
根据 指定事件位置 过滤事件
类型
根据上述应用场景,常见的过滤操作符 主要有:
示意图
具体操作符 & 应用场景 详细介绍
Android RxJava:过滤操作符 全面讲解
实际开发需求案例
下面,我将讲解组合操作符的常见实际需求案例
该例子将结合 Retrofit 和 RxJava 进行讲解
Android RxJava 实际应用讲解:功能防抖
Android RxJava 实际应用讲解:联想搜索优化
3.6 条件 / 布尔操作符
作用
通过设置函数,判断被观察者(Observable)发送的事件是否符合条件
类型
RxJava2 中,条件 / 布尔操作符的类型包括:
示意图
具体操作符详解
Android RxJava:详解 条件 / 布尔操作符
至此,关于 RxJava 2 中的操作符讲解完毕.
4. 总结
本文主要对 RxJava2 中常用的所有类型操作符进行了详细介绍,下面用 1 张图进行总结
示意图
接下来的时间,我将持续推出 Android 中 Rxjava 2.0 的一系列文章,包括原理,操作符,应用场景,背压等等 ,有兴趣可以继续关注 Carson_Ho 的安卓开发笔记 !!
示意图
请点赞!因为你的鼓励是我写作的最大动力!
来源: http://www.jianshu.com/p/cd984dd5aae8