#RxJava 基本用法
文章目录- 一、通过subscribe(观察者)回调
- 1.1创建观察者
- 1.1.1使用Subscriber创建
- 1.1.2使用Observer创建
- 1.2创建被观察者
- 1.2.1将事件添加到任务队列中
- 1.3订阅
- 二、不完整回调
- 2.1Action
- 2.2回调的具体实现
Subscriber1.1.2使用Observer创建subscriber = new Subscriber (){ //事件队列完结,不会再有新的 onNext 发出 @Override public void onCompleted() { Log.d(TAG, "onCompleted: "); } //队列自动终止,不允许再有事件发出 @Override public void onError(Throwable e) { Log.d(TAG, "onError: "); } @Override public void onNext(String s) { Log.d(TAG, "onNext: " + s); } //可选方法,在事件未发送之前被调用,默认空实现 @Override public void onStart() { Log.d(TAG, "onStart: "); } };
- 在订阅过程中也会被转换为Subscriber
Observer1.2创建被观察者 1.2.1将事件添加到任务队列中observer = new Observer (){ @Override public void onCompleted() { Log.d(TAG, "onCompleted: "); } @Override public void onError(Throwable e) { Log.d(TAG, "onError: "); } @Override public void onNext(String s) { Log.d(TAG, "onNext: "); } };
-
Observable
observable = Observable.create(new Observable.OnSubscribe () { @Override public void call(Subscriber super String> subscriber) { subscriber.onNext("煎饼果子"); subscriber.onNext("麻球"); subscriber.onCompleted(); } }); -
日志情况与第一种相同
Observable
observable1 = Observable.just("南瓜饼", "糖醋里脊"); -
日志情况与第一种相同
String[] words = {"麻薯","吐司"}; Observableobservable2 = Observable.from(words);
observable.subscribe(subscriber);
被观察者.subscribe(观察者)
二、不完整回调 2.1Action-
提供了Action0,Action1,Action2,…ActionN多个接口
-
public interface Action1<T> extends Action { void call(T t); }Action 后的数字代表回调的参数类型数量
- 同样需要创建被观察者
Action1onNextAction = new Action1 () { @Override public void call(String s) { Log.d(TAG, "onNext" + s); } }; Action1 onErrorAction = new Action1 () { @Override public void call(Throwable throwable) { Log.d(TAG, "onError"); } }; Action0 onCompletedAction = new Action0() { @Override public void call() { Log.d(TAG, "onCompleted"); } }; //选择性的订阅其中的Action observable.subscribe(onNextAction,onErrorAction,onCompletedAction);



