RxJava&RxAndroid

简介

一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。

项目地址

https://github.com/ReactiveX/RxJava

https://github.com/ReactiveX/RxAndroid

简单例子

        /**
         * 创建一个被观察者
         */
        Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() {

            @Override
            public void call(Subscriber<? super String> subscriber) {
                subscriber.onNext("OnSubscribe call");
                subscriber.onCompleted();
            }
        });

        /**
         * 创建一个观察者
         */
        Observer<String> observer = new Observer<String>() {

            @Override
            public void onCompleted() {
                //数据接收完成时调用
                System.out.println("observer1 onCompleted");
            }

            @Override
            public void onError(Throwable e) {
                System.out.println("observer1 onError");
                //发生错误调用
            }

            @Override
            public void onNext(String s) {
                //正常接收数据调用
                System.out.println("observer1 "+s);
            }
        };

        /**
         * subscribe订阅
         */
        observable.subscribe(observer);

概念

Observable:被观察者,事件源。在观察者模式中被观察对象。
Observer:观察者,接收源。在观察者模式中观察者。
Subscriber:订阅者,其实也是接收者。比Observer多了一个Subscription。
 public abstract class Subscriber<T> implements Observer<T>, Subscription {
 ......
 }
Subscription:rxjava中“订阅”对象,可以unsubscribe(取消订阅)和isUnsubscribed(判断是否被取消订阅)
Operator:操作符
OnSubscribe:
Scheduler:调度器,可以切换主线程和各个线程。
ActionX:没有返回值的函数
Func0:有返回值的函数

扩展

http://blog.csdn.net/johnny901114/article/details/51524470

results matching ""

    No results matching ""