您的位置:首页 > 编程语言 > Java开发

RxJava

2016-06-18 12:16 288 查看
知识来源: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);
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: