在使用RxJava前请先在AndroidStudio中配置gradle:
//RxJava
implementation "io.reactivex.rxjava3:rxjava:3.0.0"
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
其中RxAndroid是RxJava在Android平台的扩展。它包含了一些能够简化Android开发的工具,比如特殊的调度器。
RxJava的基本用法分为3个步骤,如下所示:
1、创建Observer(观察者)
它决定事件触发的时候将有怎样的行为,代码如下所示:
Observer observer = new Observer<String>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.d(TAG, "onSubscribe: ");
}
@Override
public void onNext(@NonNull String s) {
Log.d(TAG, "onNext: ");
}
@Override
public void onError(@NonNull Throwable e) {
Log.d(TAG, "onError: ");
}
@Override
public void onComplete() {
Log.d(TAG, "onComplete: ");
}
};
- onSubscribe:事件队列完结。RxJava不仅把每个事件单独处理,而且还会把他们看做一个队列。当不会再有新的onNext发出时,需要触发onComplete方法作为完成标志。
- onError:事件队列异常。在事件处理过程中出现异常,onError方法会被触发,同时队列自动终止,不允许再有事件发出。
- onNext:普通的事件。将要处理的事件添加到事件队列中。
- onSubscribe:当订阅时会被调用。
2.创建Observable(被观察者)
它决定什么时候触发事件及触发怎样的事件。RxJava使用create方法来创建一个Observable,并为它定义事件触发规则,如下所示:
Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(@NonNull ObservableEmitter<String> emitter) throws Throwable {
emitter.onNext("杨影枫");
emitter.onNext("月眉儿");
emitter.onComplete();
}
});
通过调用subscriber的方法,不断地将事件添加到任务队列中,也可以用just方法实现:
Observable.just("杨影枫","月眉儿").subscribe(observer);
上述代码会依次调用 onNext("杨影枫")、onNext("月眉儿")、onComplete()。
3.Subscribe(订阅)
订阅至于要一行代码就可以了,如下所示:
observable.subscribe(observer)