android rx-Java,Android RxJava:这是一份全面 & 详细 的RxJava操作符 使用攻略

cd984dd5aae8

前言

Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。

cd984dd5aae8

Github截图

RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求

今天,我将为大家献上一份 RxJava操作符的详细使用攻略,希望你们会喜欢。

本系列文章主要基于 Rxjava 2.0

接下来的时间,我将持续推出 Android中 Rxjava 2.0 的一系列文章,包括原理、操作符、应用场景、背压等等 ,有兴趣可以继续关注Carson_Ho的安卓开发笔记!!

cd984dd5aae8

示意图

目录

cd984dd5aae8

示意图

1. 简介

RxJava 操作符的具体简介如下:

cd984dd5aae8

示意图

2. 类型

RxJava功能强大,所以其对应的操作符的类型也非常多

根据功能作用的不同,RxJava的操作符分类如下:

cd984dd5aae8

示意图

下面,我将对每类的操作符进行详细讲解

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 创建操作符

作用

创建 被观察者( Observable) 对象 & 发送事件。

应用场景

cd984dd5aae8

示意图

类型

根据上述应用场景,创建操作符的类型包括:

cd984dd5aae8

示意图

实际开发需求案例

下面,我将讲解创建操作符的1个常见实际需求案例:网络请求轮询

3.2 变换操作符

作用

对事件序列中的事件 / 整个事件序列 进行加工处理(即变换),使得其转变成不同的事件 / 整个事件序列

具体原理

cd984dd5aae8

示意图

应用场景

嵌套回调(Callback hell)

类型

根据上述应用场景,常见的变换操作符类型包括:

cd984dd5aae8

示意图

实际开发需求案例

下面,我将讲解变换操作符的1个常见实际需求案例:网络请求嵌套回调

该例子将结合Retrofit 和 RxJava 进行讲解

3.3 组合 / 合并操作符

作用

组合 多个被观察者(Observable) & 合并需要发送的事件

应用场景

组合多个被观察者

合并多个事件

发送事件前追加发送事件

统计发送事件数量

类型

根据上述应用场景,常见的组合 / 合并操作符 主要有:

cd984dd5aae8

示意图

实际开发需求案例

下面,我将讲解组合操作符的常见实际需求案例

该例子将结合Retrofit 和 RxJava 进行讲解

3.4 功能性操作符

作用

辅助被观察者(Observable) 在发送事件时实现一些功能性需求

实际应用场景

连接(订阅) 观察者 & 被观察者

线程调度(切换)

错误处理

事件生命周期操作

延时操作

重复发送操作

类型

根据上述应用场景,常见的功能性操作符 主要有:

cd984dd5aae8

示意图

实际开发需求案例

下面,我将讲解组合操作符的常见实际需求案例

该例子将结合Retrofit 和 RxJava 进行讲解

3.5 过滤操作符

作用

过滤 / 筛选 被观察者(Observable)发送的事件 & 观察者 (Observer)接收的事件

应用场景

根据 指定条件 过滤事件

根据 指定事件数量 过滤事件

根据 指定时间 过滤事件

根据 指定事件位置 过滤事件

类型

根据上述应用场景,常见的过滤操作符 主要有:

cd984dd5aae8

示意图

实际开发需求案例

下面,我将讲解组合操作符的常见实际需求案例

该例子将结合Retrofit 和 RxJava 进行讲解

3.6 条件 / 布尔操作符

作用

通过设置函数,判断被观察者(Observable)发送的事件是否符合条件

类型

RxJava2中,条件 / 布尔操作符的类型包括:

cd984dd5aae8

示意图

至此,关于RxJava 2 中的操作符讲解完毕。

4. 总结

本文主要对 RxJava2 中常用的所有类型操作符进行了详细介绍,下面用1张图进行总结

cd984dd5aae8

示意图

接下来的时间,我将持续推出 Android中 Rxjava 2.0 的一系列文章,包括原理、操作符、应用场景、背压等等

cd984dd5aae8

示意图

感兴趣的同学可以继续关注本人运营的Wechat Public Account:

请点赞!因为你的鼓励是我写作的最大动力!

不定期分享关于安卓开发的干货,追求短、平、快,但却不缺深度。

cd984dd5aae8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值