RxJava是一种Java语言实现的响应式编程,来创建基于事件的异步程序,Rxjava是一个基于事件订阅的异步执行的一个类库,是目前比较火的一个技术框架。
GitHub上RxJava的项目地址:
https://github.com/ReactiveX/RxJava
Android build.gradle文件相关依赖:
implementation 'io.reactivex.rxjava2:rxjava:2.0.1' implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
Rxjava 相关API:
Rxjava是一个基于事件的链式操作框架,因此在使用之前,我们需要对它相关的API了解下。
1:Observable 观察者模式成为被观察者。
2:Observice 观察者模式中的观察者,可接受Observable发送的数据。
3:Subscribe 表示订阅,连接观察者与被观察者,通过Observable的subscribe()方式进行订阅。
代码使用示例:
我们定义一个被观察者Observable,然后定义一个观察者Observer,通过subscribe方法连接
//创建一个被观察者Observable
Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> e) throws Exception {
//ObservableEmitter是一个发射器
e.onNext("the one");
Log.e(TAG, "observable: the one");
e.onNext("the two");
Log.e(TAG, "observable: the two");
e.onNext("the three");
Log.e(TAG, "observable: the three");
e.onComplete();
}
});
//创建一个观察者Observer
Observer<String> observer = new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
Log.e(TAG, "onSubscribe");
}
@Override
public void onNext(String value) {
Log.e(TAG, "onNext " + value);
}
@Override
public void onError(Throwable e) {
Log.e(TAG, "onError");
}
@Override
public void onComplete() {
Log.e(TAG, "onComplete");
}
};
//连接被观察者与观察者
observable.subscribe(observer);
<