part04_Rxjava入门

作者:IT魔幻师
博客:www.huyingzi.top
转载请注明出处:https://www.jianshu.com/p/88e368311f8b


一、前言

Rxjava是基于事件流 开发的响应式编程框架,适用于复杂业务场景,rxandroid是rxjava的一个安卓扩展版,rxandroid里面扩展了一些Android组件,开发的时候我们将两个库都引入.

二、被观察者,观察者,订阅的关系

  • 依次创建被观察者,观察者,最后发起订阅
   @Test
    public void testObservable() {
        System.out.println("-----被观察者 testCrteate  创建一个事件!");
        //创建被观察者
        Observable mObservable=  Observable.create(new ObservableOnSubscribe() {
            @Override
            public void subscribe(ObservableEmitter emitter) throws Exception {
                System.out.println("通知:被观察者 subscribe  发送通知给观察者");
                //调用此方法后观察者就会在onNext中收到通知,不调用就不会通知观察者
                emitter.onNext("你好我是你爸爸");
            }
        });

        System.out.println("-----观察者 testCrteate  创建一个观察者观察事件!");
        //观察者  线程调度  泛型
        Observer mObserver = new Observer<String>(){

            @Override
            public void onSubscribe(Disposable d) {
                System.out.println("通知:观察者 onSubscribe  告诉被观察者有人订阅了事件");
            }

            @Override
            public void onNext(String s) {
                System.out.println("通知:观察者收到通知 onNext  :"+s);
            }

            @Override
            public void onError(Throwable e) {
                System.out.println("通知:观察者 onError  ");
            }

            @Override
            public void onComplete() {
                System.out.println("通知:观察者 onComplete  ");
            }
        };

        System.out.println("-----订阅 subscribe  订阅事件!");
        //订阅 将观察者通过subscribe提交到被观察者中
        mObservable.subscribe(mObserver);
    }
  • 结果输出


    事件执行结果

三、链式调用,创建被观察者时直接发起订阅,将被观察者作为参数传递

@Test
    public void testObservable2() {
        Observable.create(new ObservableOnSubscribe<String>() {
            @Override
            public void subscribe(ObservableEmitter<String> emitter) throws Exception {
                emitter.onNext("我是你爸爸");
            }
        }).subscribe(new Observer<String>() {
            @Override
            public void onSubscribe(Disposable d) {
                
            }

            @Override
            public void onNext(String s) {

            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        });
    }

四、最终进化-使用操作符

 @Test
    public void testjust() {
        //just是create的快捷创建操作
        Observable.just("我是你爸爸","我是你爸爸2").subscribe(new Observer<String>() {
            @Override
            public void onSubscribe(Disposable d) {
            }

            @Override
            public void onNext(String s) {
                //此处会依次收到just参数传递过来的值
            }

            @Override
            public void onError(Throwable e) {
            }

            @Override
            public void onComplete() {
            }
        });
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。