Android RxJava: 这是一份全面的 操做符 使用汇总 (含详细实例讲解)

前言

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

Github截图

若是还不了解RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程java

  • RxJava如此受欢迎的缘由,在于其提供了丰富 & 功能强大的操做符,几乎能完成全部的功能需求
  • 今天,我将为你们献上一份 RxJava操做符的详细使用攻略,但愿大家会喜欢。
  1. 本系列文章主要基于 Rxjava 2.0
  2. 接下来的时间,我将持续推出 AndroidRxjava 2.0 的一系列文章,包括原理、操做符、应用场景、背压等等 ,有兴趣能够继续关注Carson_Ho的安卓开发笔记!!

示意图

本文全部代码 Demo均存放在Carson_Ho的Github地址react


目录

示意图


1. 简介

RxJava 操做符的具体简介以下:android

示意图


2. 类型

  • RxJava功能强大,因此其对应的操做符的类型也很是多
  • 根据功能做用的不一样,RxJava的操做符分类以下:

示意图

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

3. 操做符详解

注:在使用RxJava 2操做符前,记得在项目的Gradle中添加依赖:git

dependencies {
      compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
      compile 'io.reactivex.rxjava2:rxjava:2.0.7'
      // 注:RxJava2 与 RxJava1 不能共存,即依赖不能同时存在
}

复制代码

3.1 建立操做符

  • 做用 建立 被观察者( Observable) 对象 & 发送事件。github

  • 应用场景缓存

示意图

  • 类型 根据上述应用场景,建立操做符的类型包括:

示意图

  1. 该例子将结合RetrofitRxJava 进行讲解
  2. 具体请看文章:Android RxJava 实际应用讲解:(无条件)网络请求轮询

3.2 变换操做符

  • 做用 对事件序列中的事件 / 整个事件序列 进行加工处理(即变换),使得其转变成不一样的事件 / 整个事件序列
  • 具体原理

示意图

  • 应用场景 嵌套回调(Callback hell网络

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

    示意图

  • 具体操做符 & 应用场景 详细介绍 Android RxJava:图文详解 变换操做符

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

  1. 该例子将结合RetrofitRxJava 进行讲解
  2. 具体请看文章:Android RxJava 实际应用讲解:网络请求嵌套回调

3.3 组合 / 合并操做符

  • 做用 组合 多个被观察者(Observable) & 合并须要发送的事件

  • 应用场景

    1. 组合多个被观察者
    2. 合并多个事件
    3. 发送事件前追加发送事件
    4. 统计发送事件数量
  • 类型 根据上述应用场景,常见的组合 / 合并操做符 主要有:

    示意图

  • 具体操做符 & 应用场景 详细介绍 Android RxJava:组合 / 合并操做符 详细教程

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

该例子将结合RetrofitRxJava 进行讲解

  1. Android RxJava 实际应用讲解:合并数据源
  2. Android RxJava 实际应用讲解:从磁盘 / 内存缓存中 获取缓存数据
  3. Android RxJava 实际应用讲解:联合判断

3.4 功能性操做符

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

  • 实际应用场景

  1. 链接(订阅) 观察者 & 被观察者
  2. 线程调度(切换)
  3. 错误处理
  4. 事件生命周期操做
  5. 延时操做
  6. 重复发送操做
  • 类型 根据上述应用场景,常见的功能性操做符 主要有:

    示意图

  • 具体操做符 & 应用场景 详细介绍 Android RxJava:功能性操做符 全面讲解

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

该例子将结合RetrofitRxJava 进行讲解

  1. Android RxJava:细说 线程控制(切换 / 调度 )(含Retrofit实例讲解)
  2. Android RxJava 实际应用讲解:网络请求出错重连(结合Retrofit)
  3. Android RxJava 实际应用讲解:(有条件)网络请求轮询

3.5 过滤操做符

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

  • 应用场景

    1. 根据 指定条件 过滤事件
    2. 根据 指定事件数量 过滤事件
    3. 根据 指定时间 过滤事件
    4. 根据 指定事件位置 过滤事件
  • 类型 根据上述应用场景,常见的过滤操做符 主要有:

    示意图

  • 具体操做符 & 应用场景 详细介绍 Android RxJava:过滤操做符 全面讲解

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

该例子将结合RetrofitRxJava 进行讲解

  1. Android RxJava 实际应用讲解:联想搜索优化
  2. Android RxJava 实际应用讲解:Android RxJava 实际应用讲解:功能防抖

3.6 条件 / 布尔操做符

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

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

示意图

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


4. 总结

  • 本文主要对 RxJava2 中经常使用的全部类型操做符进行了详细介绍,下面用1张图进行总结

示意图

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

示意图


请帮顶点赞!由于你的鼓励是我写做的最大动力!


欢迎关注carson_ho的微信公众号

示意图

示意图
相关文章
相关标签/搜索