理解RxJava,RxAndroid的观察者模式

这响应式编程好像也是挺厉害挺好用的样子,作为菜鸟肯定要多学一些东西

在网上查阅了一些资料 ,记录一下自己的一些理解,有错误的地方请指教。

由Android开发中的点击事件的观察者模式理解RxJava的观察者模式


点击事件

        
	view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });


RxJava 2.0



	//被观察者 相当于点击时间中的 View
        Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() {
            @Override
            public void subscribe(@NonNull ObservableEmitter<String> e) throws Exception {
                //这一部分应该类似 调用的 onClick(View v) v的传递 应该在view源码中有这样的接口回调
                e.onNext("1");
                e.onNext("2");
                e.onComplete();
            }
        });

        //观察者 相当于点击事件中的监听 setOnClickListener(this) 中的this(new OnClickListener())
        //其中 String为传递的参数类型 类似 onClick(View v)  中的view
        Observer<String> obsetver = new Observer<String>() {
            @Override
            public void onSubscribe(@NonNull Disposable d) {
                //这个方法是在订阅后发送数据之前执行的 (这个暂时不知道有什么使用场景)
                //Disposable用于取消订阅 关于Disposable d 的使用方法
                //设置一个全局的Disposable d ,然后
                disposable = d;
                //在不使用的时候取消订阅(比如在Activity的onDestory()等) if(disposable!=null && disposable.isDisposed())  disposable.dispose();
                //不知道我这样理解Disposable d 的使用方法对不对 还请指教
                LogUtils.w("obsetver", "onSubscribe");
            }

            @Override
            public void onNext(@NonNull String s) {
                LogUtils.w("obsetver", "onNext");
            }


            @Override
            public void onError(@NonNull Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        };
        //订阅 也就是view.setOnClickListener()设置监听
        observable.subscribe(obsetver);




应该似乎好像差不多也许可能可以这样理解吧~

猜你喜欢

转载自blog.csdn.net/qq_30837235/article/details/72461932