RxJava是Java VM上一个灵活的,使用可观测序列组成的异步的、基于事件的库。 它的核心最主要在于它的“异步”, Observable(被观察者)与 Observer/Subscriber(观察者),Observable可发出一系列事件,事件执行完毕后回调被观察者,这里的事件可以有非常多种形式,例如:网络请求、文件操作、数据加载、循环、延时操作等等。
其中网络请求一般时Retrofit,
retrofit 是支持RxJava的网络请求库
Subscriber:订阅者,也是接收源,那它跟Observer有什么区别呢?Subscriber实现了Observer接口,比Observer多了一个最重要的方法unsubscribe( ),用来取消订阅,当你不再想接收数据了,可以调用unsubscribe( )方法停止接收,Observer 在 subscribe() 过程中,最终也会被转换成 Subscriber 对象,一般情况下,建议使用Subscriber作为接收源;
Subscription:Observable调用subscribe( )方法返回的对象,同样有unsubscribe( )方法,可以用来取消订阅事件;
被观察者:
Observer observer = new Observer<String>() {
@Override
public void onCompleted() {
LogShowUtil.addLog("RxJava","结束",true);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String string) {
LogShowUtil.addLog("RxJava","结果: "+string,true);
}
};
观察者:
Observable observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("杨");
subscriber.onNext("月");
subscriber.onCompleted();
}
});
订阅动作:
observable.subscribe(observer);