Android随笔之初心者的RxJava操作符总结

关于Android开发的相关知识点

Posted by Zicon on September 29, 2018

“初步接触RxJava的操作符总结”

前言

笔者在项目的推动下要使用RxJava,因此先去了解一下RxJava的一些基础知识。

本章是笔者暂时接触到的RxJava的操作符的一些整理。

当然,这是笔者自己的总结,参考了几篇通俗易懂的文章,会在文末贴出链接。


正文

创建操作符

创建操作符,用于创建上游,实际可应用在网络请求轮询中。

模式名称 定义
Create 直接创建
Just 简洁创建;会将创建时传入的参数依次发送出来
From 简洁;将传入的数组或列表拆分为具体对象后依次发送
Interval 创建一个按时间间隔发送整数序列的上游;有定时器作用
Range 创建一个发送一个范围内有序整数序列的上游
Defer 延迟创建,直到被订阅才开始创建
Repeat 创建一个重复N次发送特定数据的上游

变换操作符

变换操作符,对上游发送的数据做变换,实际可应用在网络请求嵌套中。

模式名称 定义
Map 指定Func对象,将上游发送的数据进行直接转换
FlatMap 将上游发送的数据集合变换平坦化放进新的上游中;flatmap合并允许交叉,即最后接收顺序不一定是原始发送顺序
ConcatMap 同上,但是最后接收顺序是有序的
FlatMapIterable 将数据转为Iterable(集合、列表),并做相关数据处理
Cast 强制将Observable发射的所有数据转换为指定类型
Buffer 设置缓冲区容量值N,新建上游,每次发送一组N数据
GroupBy 分组,对原数据某key值进行分组后发送,发送上游而不是数据组

过滤操作符

过滤操作符,对上游发送的数据做过滤,实际可应用在搜索请求的优化。

模式名称 定义
Filter 对发送的数据进行特殊处理,只取符合的数据
Sample 每隔自定时间会对数据进行取样,发送取到的数据
Take、TakeList 将发送数据的前N项或后N项发送出去,其余过滤
Distinct 直接使用,去重

组合操作符

组合操作符,对多个上游发送的数据做组合后发送,实际可应用在数据源合并、联合判断、数据同时展示。

模式名称 定义
Zip 将多个上游发送的事件结合重新发送,按照顺序结合,并且重发送的数量以数量最少的事件为准;以最后一个上游发送事件的被接收开始按序进行组合

功能操作符

组合操作符,对上游发送的数据做功能性操作,实际可应用在线程切换、轮询、发送网络请求时差错重试机制。

模式名称 定义
subscribe 上下游的订阅连通
subscribrOn 线程调度
observeOn 线程调度
delay 延迟操作
repeat 重复发送

后记

以上就是笔者自己对RxJava操作符的整理,同时给出链接:

在这位作者的动态里有教程一到十,可以自行阅读:给初学者的RxJava2.0教程(一)

残念,笔者并没有给出代码示例的打算 哈哈哈哈