理解RxJava,RxAndroid的观察者模式

本文通过Android中点击事件的观察者模式来解释RxJava的工作原理。从创建被观察者到观察者的订阅过程,再到数据的传递,详细解析了RxJava如何实现事件的观察与响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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




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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值