RxJava

Single 使用

Flowable 比较重一般使用Single

onSubscribe 产生订阅时调用

线程切换1

2

发送顺序事件.just

just 源码

钩子方法,进行验证再处理

Single 对象

订阅,RxJavaPlugins.onSubscribe 钩子方法,产生订阅和过滤

Single 核心方法,抽象的,实现为SingleJust

订阅和执行成功回调,disposed 表示丢弃,顺时完成,一产生订阅就执行成功

Disposable 枚举类

Single.just 流程图

操作符 map 转换

源码,先判断是否为Null,然后通过钩子方法进行绑定处理

source 源数据,map 接口

创建订阅,然后通过内部对象进行操作

将数据进行转换然后发送给下游

把订阅的事件交给我们创建的下游

产生订阅和错误直接让下游处理,成功则进行apply转换再进行转发

上游先产生订阅,通过MapSingeleObserver进行订阅自身的内部对象

取消事件则是停止上游产生消息断开上游的联系,判断是否是新创建的还是生成的

Single.just则是无延迟和后续

Observable.just则是无延迟,有后续

Observable.interval 则是有延迟有后续

间隔一秒执行

源码:

subscribeActural

is是内部对象

实现了Disable,继承了AtomicRefrence 线程安全的引用,可取消,线程安全,同样也是一个Runnable

每隔一个单位就调用run

在后台线程每隔时间单位执行

调用内部的dispose,如果没有取消则进行取消

 

把内部值设置为传入的值,如果已经设置过不为null则不进行设置

如果进行dispose,则用内部传入的值进行dispose

通过内部进行挂接,连接操作

没有延时的Single则不再产生消息,然后不再计算,其他的则通过内部挂接进行操作

有上游的则不同,判断有没有延时

SingleObserver

上游

Dispose

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值