RXJava2.X

Rxjava2学习笔记一:RxJava2基本使用

2018-01-15  本文已影响33人  橘子树上结西瓜

参考链接:
https://www.jianshu.com/p/464fa025229e
Rxjava2学习笔记二:RxJava2进阶使用-zip操作符
https://www.jianshu.com/p/ef8b620fdc4c
Rxjava2学习笔记三:RxJava2进阶使用-map操作符
https://www.jianshu.com/p/f7efc1aeb6c9

1.Gradle配置

2.原理

基本使用例1

    注:Rxjava2中的emitter-》发射器,用于被观察者发射事件  
    Disposable-》RxJava1.x中的Subscription,用于解除订阅

    //创建一个上游 Observable:
    Observable<Integer> observable = Observable.create(new ObservableOnSubscribe<Integer>() {
        @Override
        public void subscribe(ObservableEmitter<Integer> emitter) throws Exception {
            emitter.onNext(1);
            emitter.onNext(2);
            emitter.onNext(3);
            emitter.onComplete();
        }
    });
    //创建一个下游 Observer
    Observer<Integer> observer = new Observer<Integer>() {
        @Override
        public void onSubscribe(Disposable d) {
            Log.d(TAG, "subscribe");
        }

        @Override
        public void onNext(Integer value) {
            Log.d(TAG, "" + value);
        }

        @Override
        public void onError(Throwable e) {
            Log.d(TAG, "error");
        }

        @Override
        public void onComplete() {
            Log.d(TAG, "complete");
        }
    };
    //建立连接
    observable.subscribe(observer);

基本使用例2-链式调用

    Observable.create(new ObservableOnSubscribe<Integer>() {
        @Override
        public void subscribe(ObservableEmitter<Integer> emitter) throws Exception {
            emitter.onNext(1);
            emitter.onNext(2);
            emitter.onNext(3);
            emitter.onComplete();
        }
    }).subscribe(new Observer<Integer>() {
        @Override
        public void onSubscribe(Disposable d) {
            Log.d(TAG, "subscribe");
        }

        @Override
        public void onNext(Integer value) {
            Log.d(TAG, "" + value);
        }

        @Override
        public void onError(Throwable e) {
            Log.d(TAG, "error");
        }

        @Override
        public void onComplete() {
            Log.d(TAG, "complete");
        }
    });

Emitter-发送规则

发送规则示意图
1.发送onNext()事件

Alt text
2.发送onComplete()事件 Alt text 3.发送发送onError事件事件 Alt text

Disposable-订阅

Consumer-消费者

3.Rxjava线程调度

上一篇 下一篇

猜你喜欢

热点阅读