RxJava(一)理论学习

作者: 泅渡者 | 来源:发表于2017-03-03 14:35 被阅读107次
    一:什么是RxJava?

    RxJava 也叫观察者模式。
    RxJava 包括:
    - Observerable: 被观察者,(数据发送者)
    - Observer: 观察者 (也叫消费者、数据处理者)
    - Subscribe: 订阅、事件
    其实我们只需要理解哪个是数据发送者哪个是数据处理者,它们之间又有什么样的事件订阅关系即可。

    二:RxJava的优点。

    RxJava具有异步、响应式、灵活、简洁等特性。

    三:RxJava的创建。

    创建Observerable:

       /**
         * 创建Observerable 目的发送整数 让消费者打印出来
         */
        private Observable<Integer>  creatObserverable() {
            return  Observable.create(new ObservableOnSubscribe<Integer>() {
                @Override
                public void subscribe(ObservableEmitter<Integer> e) throws Exception {
                        e.onNext(1);
                        e.onNext(2);
                        e.onNext(3);
                        e.onNext(4);
                        e.onComplete();
                }
            });
        }
    
    

    创建Observer:

     /**
         * 创建Observer 处理数据
         */
        private  Observer<Integer> creatObserver() {
            return  new Observer<Integer>() {
                @Override
                public void onSubscribe(Disposable d) {
                    Log.d("TAG","onSubscribe被执行");
                }
    
                @Override
                public void onNext(Integer s) {
                    Log.d("TAG","onNext被执行:"+s);
                }
    
                @Override
                public void onError(Throwable e) {
                    Log.d("TAG","onError被执行");
                }
    
                @Override
                public void onComplete() {
                    Log.d("TAG","onComplete被执行");
                }
            };
    
        }
    

    订阅:

       Observable<Integer> observerable = creatObserverable();
                Observer<Integer> observer = creatObserver();
                observerable.subscribe(observer);
    

    运行结果:

    03-03 14:27:32.726 8598-8598/com.pse.rxandroid D/TAG: onSubscribe被执行
    03-03 14:27:32.727 8598-8598/com.pse.rxandroid D/TAG: onNext被执行:1
    03-03 14:27:32.727 8598-8598/com.pse.rxandroid D/TAG: onNext被执行:2
    03-03 14:27:32.727 8598-8598/com.pse.rxandroid D/TAG: onNext被执行:3
    03-03 14:27:32.727 8598-8598/com.pse.rxandroid D/TAG: onNext被执行:4
    03-03 14:27:32.727 8598-8598/com.pse.rxandroid D/TAG: onComplete被执行
    

    subscribe()有多个重载方法,每个方法的侧重点不同:

        public final Disposable subscribe() {}
        public final Disposable subscribe(Consumer<? super T> onNext) {}
        public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError) {} 
        public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete) {}
        public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete, Consumer<? super Disposable> onSubscribe) {}
        public final void subscribe(Observer<? super T> observer) {}
    

    上面便是最简单的RxJava的使用,但是RxJava还有很多复杂的操作符,比如flatMap()等我们第二章去了解。

    相关文章

      网友评论

        本文标题:RxJava(一)理论学习

        本文链接:https://www.haomeiwen.com/subject/vhtrgttx.html