知识来源:http://www.imooc.com/article/2298
什么是ReactiveX?
ReactiveX是一个专注于异步编程与控制可观察数据(或者事件)流的API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。实时数据处理是一件普通的现象,有一个高效、干净和可扩展的方式来处理这些情景是重要的。使用Observables和Operators来熟练操作它们。ReactiveX提供一个可组合又灵活的API来创建和处理数据流,同时简化了异步编程带来的一些担忧,如:线程创建和并发问题。
RxJava简介
RxJava是ReactiveX在Java上的开源的实现。Observable(可观察的) 和 Subscriber(订阅者)是两个主要的类。在RxJava上,一个Observable是一个发出数据流或者事件的类,Subscriber是一个对这些发出的items(数据流或者事件)进行处理(采取行动)的类。一个Observable的标准流发出一个或多个item,然后成功完成或者出错。一个Observable可以有多个Subscribers,并且通过Observable发出的每一个item,该item将会被发送到Subscriber.onNext()方法来进行处理。一旦Observable不再发出items,它将会调用Subscriber.onCompleted()方法,或如果有一个出错的话Observable会调用Subscriber.onError()方法。
RxJava的简单使用
步骤1:在Android Studio中使用RxJava需要添加如下依赖 。
compile 'io.reactivex:rxjava:1.1.6'
步骤2:
//创建一个“可观察的”
Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("Hello RxJava!");
subscriber.onCompleted();
}
});
//创建一个“订阅者”
Subscriber<String> subscriber = new Subscriber<String>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String s) {
textView.setText(s);
}
};
//将“可观察的”与“订阅者”连接在一起
observable.subscribe(subscriber);
还可以如下:
Observable.just("Hello RxJava!").subscribe(new Action1<String>() {
@Override
public void call(String s) {
textView.setText(s);
}
});