友好 RxJava2.x 源码解析(一)基本订阅流程

本文详细解析了 RxJava2.x 中的基本订阅流程,从 `Observable#subscribe(Observer)` 开始,深入源码,逐步剖析 `Observer#onSubscribe(Disposable)` 和 `Observer#onNext(T)` 的执行过程,帮助读者理解 RxJava 的工作原理。
摘要由CSDN通过智能技术生成

系列文章:
友好 RxJava2.x 源码解析(一)基本订阅流程
友好 RxJava2.x 源码解析(二)线程切换
友好 RxJava2.x 源码解析(三)zip 源码分析

本文掘金地址:友好 RxJava2.x 源码解析(一)基本订阅流程

本文基于 RxJava 2.1.3

前言

本文基于读者会使用 RxJava 2.x 而讲解,基本原理不涉及,示例只纯粹为示例而示例。

示例代码

示例源码:

    Observable
            .create(new ObservableOnSubscribe<String>() {
                @Override
                public void subscribe(ObservableEmitter<String> emitter) throws Exception {
                    emitter.onNext("1");
                    emitter.onNext("2");
                    emitter.onNext("3");
                    emitter.onComplete();
                }
            })
            .subscribe(new Observer<String>() {
                @Override
                public void onSubscribe(Disposable d) {
                    Log.e("TAG", "onSubscribe():  ");
                }

                @Override
                public void onNext(String s) {
                    Log.e("TAG", "onNext():  " + s);
                }

                @Override
                public void onError(Throwable e) {

                }

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

输出结果:

E/TAG: onSubscribe():  
E/TAG: onNext():  1
E/TAG: onNext():  2
E/TAG: onNext():  3
E/TAG: onComplete():  

订阅流程解析

有过一定基础的读者知道 subscribe() 方法是 Observable 和 Observer 的连接点,所以首先戳进 subscribe(Observer observer) 中,可以发现该方法是 Observable 类的方法,传入了一个 Observer 对象,那首先我们需要弄明白这里的 Observable 和 Observer 分别是什么,好在这里我们可以直接看到 Ob

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值