理解RxJava,RxAndroid的观察者模式

来源:互联网 发布:ug自动编程 编辑:程序博客网 时间:2024/05/17 06:27

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

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

由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);



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

原创粉丝点击