RxJava&RxAndroid
简介
一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。
项目地址
https://github.com/ReactiveX/RxJava
https://github.com/ReactiveX/RxAndroid
简单例子
/**
* 创建一个被观察者
*/
Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("OnSubscribe call");
subscriber.onCompleted();
}
});
/**
* 创建一个观察者
*/
Observer<String> observer = new Observer<String>() {
@Override
public void onCompleted() {
//数据接收完成时调用
System.out.println("observer1 onCompleted");
}
@Override
public void onError(Throwable e) {
System.out.println("observer1 onError");
//发生错误调用
}
@Override
public void onNext(String s) {
//正常接收数据调用
System.out.println("observer1 "+s);
}
};
/**
* subscribe订阅
*/
observable.subscribe(observer);
概念
Observable:被观察者,事件源。在观察者模式中被观察对象。
Observer:观察者,接收源。在观察者模式中观察者。
Subscriber:订阅者,其实也是接收者。比Observer多了一个Subscription。
public abstract class Subscriber<T> implements Observer<T>, Subscription {
......
}