RxJava 的基本使用
概述?
Observables 发出一系列事件,Subscribers 处理这些事件。? 一个 Observable 可以发出零个或者多个事件,知道结束或者出错。每发出一个事件,就会 调用它的 Subscriber 的 onNext 方法,最后调用 Subscriber.onNext()或者 Subscriber.onError() 结束。? ? HelloWord? 首先关联包 compile ‘io.reactivex:rxandroid:1.2.1‘ compile ‘io.reactivex:rxjava:1.1.6‘? Observable<String> myObservable = Observable.create(
接着创建一个 Subscriber 来处理 Observable 对象发出的字符串。 ? //观察者有三个方法
Subscriber<String> mySubscriber = new Subscriber<String>() { @Override public void onNext(String s) { System.out.println(s); } @Override public void onCompleted() { } @Override public void onError(Throwable e) { } }; //让观察者和被观察者产生关系 myObservable.subscribe(mySubscriber);
?//订阅后myObservable就是调用mySubscriber对象的onNext和onComplete方法, mySubscriber 就会打印出 Hello World!? HelloWord 简化? //RxJava 内置了很多简化创建 Observable 对象的函数,比如 Observable.just 创建只发出一? //个事件就结束的 Observable 对象,可以简化为一行? Observable<String> myObservable = Observable.just("Hello,world!"); // 接下来看看如何简化Subscriber,上面的例子中,我们其实并不关心OnComplete和OnError, // 只需要在 onNext 的时候做一些处理,这时候就可以使用 Action1 类。? Action1<String> onNextAction = new Action1<String>() {
@Override
public void call(String s) { System.out.println(s); } };
subscribe 方法有一个重载版本,接受三个 Action1 类型的参数,分别对应 OnNext, OnComplete, OnError 函数。? //现在的
myObservable.subscribe(onNextAction);
//可以再整体简化 Observable.just("Hello,world!") .subscribe(new Action1<String>() { @Override public void call(String s) { System.out.println(s); } });
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |