Android进阶Android技术知识Android开发

Rx-创建操作符-Create

2016-11-02  本文已影响54人  CokeNello

1 .概述:

我想,你在看这篇文章之前,应该要先了解一下Rxjava的魅力,具体百度啊,可以看看仍物线同学的文章。
create操作符,是一个什么都没有的状态下,创建一个Observable,可被观察者。


create

如上面的图示:
横轴是时间线,起点是create,从create,流水线开始,create中每次调用onNext,就有一次时间点的触发(红点)等等,最后,onComplete结束整个流水线。

2 .代码:

建立起一个可被观察者:

//1.建立起一个可观察者,observable。
        Observable<Integer> observable = Observable.create(new Observable.OnSubscribe<Integer>() {
            @Override
            public void call(Subscriber<? super Integer> subscriber) {
                for (int i = 0; i < 5; i++) {
                    subscriber.onNext(i);
                }
                subscriber.onCompleted();
            }
        });

这里,建立起来后,代码里面调用了五次观察者的onNext,当然,此时,数据还并没有发射。当有订阅者,或者说,当有观察者观察的时候,才会触发这段代码运行。
然后,我们看看观察者:

//2.创建观察者。
        Subscription subscription = observable.subscribe(new Observer<Integer>() {
            @Override
            public void onCompleted() {
                LogUtils.e("onCompleted");
            }

            @Override
            public void onError(Throwable throwable) {

            }

            @Override
            public void onNext(Integer integer) {
                LogUtils.e(integer.toString());
            }
        });

当观察者订阅之后,代码就开始运行了。
看看Log:

10-21 15:23:01.658 22690-22690/testmodules.chestnut E/TAG: 0
10-21 15:23:01.658 22690-22690/testmodules.chestnut E/TAG: 1
10-21 15:23:01.658 22690-22690/testmodules.chestnut E/TAG: 2
10-21 15:23:01.658 22690-22690/testmodules.chestnut E/TAG: 3
10-21 15:23:01.658 22690-22690/testmodules.chestnut E/TAG: 4
10-21 15:23:01.659 22690-22690/testmodules.chestnut E/TAG: onCompleted

嗯,onNext调用了五次,最后onCompleted。

3 .观察者的说明

4. 最后

Rx是2015年,热起来的一个新思想,如果你还没接触,就要赶紧了。新思想,新技术的注入,必定将颠覆你的编程思想。这是一个潮流,你也必须跟上去,不然你就落后了。

上一篇 下一篇

猜你喜欢

热点阅读