RxJava源码解析

181 阅读1分钟

github 地址

RxJava is a library for composing asynchronous and event-based programs by using observable sequences.

RxJava是一个基于事件流、实现异步操作的库。

RxJava是基于观察者模式的:大概原理是Observable里持有observer的引用,Observable发送事件,observer即接收事件。

Observable:被观察者,生产事件的

Observer:观察者,接收&处理事件

subscribe:形成订阅关系,开始真正进行事件流的传递处理

1、Observable的基本使用

            Observable.just(1, 2, 3, 4)
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<Integer>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                        Log.d(TAG, "onSubscribe");
                    }

                    @Override
                    public void onNext(Integer value) {
                        Log.d(TAG, "最终接收到的事件 =  " + value);
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, "onError");
                    }

                    @Override
                    public void onComplete() {
                        Log.d(TAG, "onComplete");
                    }
                });

参考 Android Rxjava:这是一篇 清晰 & 易懂的Rxjava 入门教程