添加依赖
implementation 'io.reactivex:rxjava:1.2.0'
implementation 'io.reactivex:rxandroid:1.2.1'
其中 RxAndroid 是 RxJava 在 Android 平台的扩展。它包含了一些能够简化 Android 开发的 工具,比如特殊的调度器。
创建 Observer(观察者)
决定事件触发的时候将有怎样的行为。
// 观察者
Subscriber subscriber = new Subscriber<String>() {
@Override
public void onStart() {
Log.d("TAG","onStart");
}
@Override
public void onNext(String s) {
Log.d("TAG","onNext");
}
@Override
public void onError(Throwable e) {
Log.d("TAG","onError");
}
@Override
public void onCompleted() {
Log.d("TAG","onCompleted");
}
};
onCompleted:事件队列完结。RxJava 不仅把每个事件单独处理,其还会把它们看作一 个队列。当不会再有新的 onNext 发出时,需要触发 onCompleted()方法作为完成标志。
onError:事件队列异常。在事件处理过程中出现异常时,onError()会被触发,同时队列 自动终止,不允许再有事件发出。
onNext:普通的事件。将要处理的事件添加到事件队列中。
onStart:它会在事件还未发送之前被调用,可以用于做一些准备工作。例如数据的清零 或重置。这是一个可选方法,默认情况下它的实现为空。
创建 Observable(被观察者)
它决定什么时候触发事件以及触发怎样的事件。
Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("1");
subscriber.onNext("2");
subscriber.onCompleted();
}
});
// just
//Observable<String> observable1 = Observable.just("1", "2");
// from
//Observable<String> observable2 = Observable.from(new String[]{"1", "2"});
Subscribe(订阅)
observable.subscribe(subscriber);