简介
Rx ,响应式编程,是一个使用可观察数据流进行异步编程的编程接口。Rx 的使用有助于提高工作效率, 优雅的处理复杂业务场景。
Rx 的大部分语言库由 ReactiveX 这个组织负责维护,比较流行的有 RxJava / RxJS / Rx.NET。
Rx = Observables + LINQ + Schedulers.
RxJava 是响应式编程的Java实现,有以下特性:
- 轻量级框架
- 异步数据处理库
- 扩展的观察者模式,提供了 onNext,onCompleted,onError 方法
- 支持 Java 8 lambda
- 支持 Java 6+ & Android 2.3+
- 支持异步和同步
RxAndroid 是 RxJava 针对 Android 平台的扩展,提供响应式扩展组件,快速开发 Android 程序。
官方网站
学习网站
名词解释
- Observable:被观察者,一旦数据发生变化,会通过某种方式通知观察者;
- Observer:观察者,监听被观察者发射的数据并作出响应;
- subscribe:订阅,观察者订阅被观察者的数据变化;
- Scheduler:调度器,用于解决多线程问题;
使用
引入类库
implementation 'io.reactivex.rxjava3:rxjava:3.0.0'
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
RxJava 3 将基准提高到了 Java 8,因此项目的编译目标设置需要更改为 Java 8。
android {
compileOptions {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
}
}
简单示例
Observable.create(new ObservableOnSubscribe<Integer>() {
@Override
public void subscribe(@NonNull ObservableEmitter<Integer> emitter) throws Throwable {
try {
for (int i=0; i<10; i