您的位置:首页 > 编程语言 > Java开发

RxJava学习笔记1--RxJava原理和简单实现

2016-07-07 19:59 351 查看
1.android BUTTON 示例

    button是被观察者(observable)

    onclicklistener是观察者(observer)

    button.setonclicklistener:订阅button

    onclick:事件

2.抽象

    observable:被观察者

    observer:观察者

    subscribe:observer订阅observable

    onevent:事件

    被观察者被观察者订阅后,在需要某些操作的时候通知观察者。

3.细化

    普遍事件:onnext

    特殊事件:oncomplete->事件队列完成后执行

          onerror->事件队列异常时调用,队列终止

    明显,oncomplete和onerror互斥

4.实现

    注册观察者:

        Observer<String> observer = new Observer<String>() {

        @Override

        public void onNext(String s) {

            Log.d(tag, "Item: " + s);

        }

        @Override

        public void onCompleted() {

            Log.d(tag, "Completed!");

        }

        @Override

        public void onError(Throwable e) {

            Log.d(tag, "Error!");

        }

        };

        定义时间触发时将有什么样的行为:onnext

    注册被观察者:

        Observable observable = Observable.create(new Observable.OnSubscribe<String>() {

        @Override

            public void call(Subscriber<? super String> subscriber) {

            subscriber.onNext("Hello");

            subscriber.onNext("Hi");

            subscriber.onNext("Aloha");

            subscriber.onCompleted();

        }

        });    

        OnSubscribe :相当于事件队列,观察者会调用3次onnext方法和一次oncompleted方法

        其他定义事件队列的方法->Observable observable = Observable.just("Hello", "Hi", "Aloha");

                              ->String[] words = {"Hello", "Hi", "Aloha"};

                                Observable observable = Observable.from(words);//将数组拆分成单个对象,依次分发事件

    订阅关联:

        observable.subscribe(observer);        //observable.subscribe(subscriber);

         原理:

       
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  RxJava