android room 返回rxjava2 Flowable类型数据的时候,应该注意的点

android.arch.persistence.room:runtime:1.1.1 版本

room 用gradle 插件生成的 impl 类,根据注解 生成具体的 实现方法

android room 返回rxjava2 Flowable类型数据的时候,应该注意的点
return RxRoom.createFlowable

android room 返回rxjava2 Flowable类型数据的时候,应该注意的点

返回的 Flowable 已经调用了 observerOn操作符 ,所以再调用 subscribeOn 操作符没有用了

不能返回 observable 类型的数据,gradle 插件不支持

androidx.room:room-runtime:2.2.0-alpha02版本

RxRoom.createFlowable 方法有改动

android room 返回rxjava2 Flowable类型数据的时候,应该注意的点

改动点 1.操作符 2.scheduler

1.使用了 subscribeOn , unsubscribeOn ,observeOn 三个操作符

unsubscribeOn 操作符 从源码来看 ,具体实现类 是FlowableUnsubscribeOn

android room 返回rxjava2 Flowable类型数据的时候,应该注意的点

对应的 subscriber 如图为 UnsubscribeSubscriber

android room 返回rxjava2 Flowable类型数据的时候,应该注意的点
UnsubscribeSubscriber 的cancel 方法,让 上游的操作符 cancel方法在指定 线程执行

android room 返回rxjava2 Flowable类型数据的时候,应该注意的点

可以配合 doOnCancel 操作符使用 ,cancel 的时候在指定线程工作

2.scheduler 有改动 分为了 事务线程 和 查询线程

具体实现 需要看源码,大概是 事务线程加了排队机制 ,查询线程还是在子线程

android room 返回rxjava2 Flowable类型数据的时候,应该注意的点