RxJava3.x入门(一)——概述及使用
RxJava简介
ReactiveX是Reactive Extensions的缩写,一般简写为Rx。
Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流。Rx的大部分语言库由ReactiveX这个组织负责维护,比较流行的有RxJava/RxJS/Rx.NET…
其有一下特点:
- 观察者模式
- 函数式风格:对可观察数据流使用无副作用的输入输出函数,避免了程序里错综复杂的状态
- 简化代码 :Rxjava的操作符通常可以将复杂的难题简化为很少的几行代码
- 异步错误处理:传统的try/catch没办法处理异步计算,Rx提供了合适的错误处理机制
- 轻松使用并发:Rx的Observables和Schedulers让开发者可以摆脱底层的线程同步和各种并发问题
- 响应式函数式编程
观察者有如下不同形式:
-
Observable:发送0个或N个数据,不支持背压。原本是支持的,RxJava2.x后由Flowable支持,因此改成不支持背压
-
Flowable:发送0个或N个数据,支持背压。是RxJava2.x后的新类型
-
Single:只处理onSuccess和onError事件,只能发送单个数据或者发送一个错误
-
Completable:创建后不会发射任何数据,只处理onComplete和onError事件
-
Maybe:能够发射0个或1个数据,是RxJava2.x后的新类型
以下步骤使用Observable/Observer为例展示RxJava使用步骤
观察者模式介绍
被观察者 (Observable) 通过 订阅(Subscribe) 按顺序发送事件 给观察者 (Observer), 观察者(Observer) 按顺序接收事件 & 作出对应的响应动作。
其大致流程图如下:
基本使用
添加依赖
在build.gralde中添加如下依赖:
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
implementation 'io.reactivex.rxjava3:rxjava:3.0.0'
以下步骤使用Observable/Observer为例展示RxJava使用步骤
步骤一、创建被观察者 (Observable )并生产事件
Observable<Integer> observable = Observable.create(new ObservableOnSubscribe<Integer>() {
@Override
public void subscribe(ObservableEmitter<Integer> e