前言
-
Rxjava
,由于其
基于事件流的链式调用、逻辑简洁 & 使用简单
的特点,深受各大
Android
开发者的欢迎。
如果还不了解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
中添加依赖:
dependencies {
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.0.7'
// 注:RxJava2 与 RxJava1 不能共存,即依赖不能同时存在
}
3.1 创建操作符
-
该例子将结合
Retrofit
和
RxJava
进行讲解
-
具体请看文章:
Android RxJava 实际应用讲解:(无条件)网络请求轮询
3.2 变换操作符
-
作用
对事件序列中的事件 / 整个事件序列 进行
加工处理
(即变换),使得其转变成不同的事件 / 整个事件序列
-
具体原理
-
该例子将结合
Retrofit
和
RxJava
进行讲解
-
具体请看文章:
Android RxJava 实际应用讲解:网络请求嵌套回调
3.3 组合 / 合并操作符
该例子将结合
Retrofit
和
RxJava
进行讲解
-
Android RxJava 实际应用讲解:合并数据源
-
Android RxJava 实际应用讲解:从磁盘 / 内存缓存中 获取缓存数据
-
Android RxJava 实际应用讲解:联合判断
3.4 功能性操作符
-
连接(订阅) 观察者 & 被观察者
-
线程调度(切换)
-
错误处理
-
事件生命周期操作
-
延时操作
-
重复发送操作
该例子将结合
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
中,条件 / 布尔操作符的类型包括:
至此,关于
RxJava 2
中的操作符讲解完毕。
4. 总结
-
本文主要对
RxJava2
中常用的所有类型操作符进行了详细介绍,下面用1张图进行总结