rxjava码农进阶之旅Android知识

RxJava(一)理论学习

2017-03-03  本文已影响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()等我们第二章去了解。

上一篇 下一篇

猜你喜欢

热点阅读