xuexiangjys / RxJava3Sample

RxJava3使用演示, 包含简介、例子、日志和源码等内容。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RxJava3Sample

RxJava3使用演示, 包含简介、例子、日志和源码等内容。

关于我

公众号 掘金 知乎 CSDN 简书 思否 哔哩哔哩 今日头条
我的Android开源之旅 点我 点我 点我 点我 点我 点我 点我

演示效果

demo.gif

发射器类型

类型 描述
Observable 能够发射0或n个数据,并以成功或错误事件终止。
Flowable 能够发射0或n个数据,并以成功或错误事件终止。支持Backpressure,可以控制数据源发射的速度。可由Observable转化而来。
Single 只发射单个数据或错误事件。只处理 onNext 和 onError 事件,没有onComplete。
Completable 它从来不发射数据,只处理 onComplete 和 onError 事件。可以看成是Rx的Runnable。
Maybe 能够发射0或者1个数据,要么成功,要么失败。类似Single和Completable的结合。如果处理了onNext 和 onError,那么就不处理onComplete。

Subject

Subject 既是 Observable 又是 Observer(Subscriber)

类型 描述
PublishSubject 只能接收到订阅之后的所有数据
BehaviorSubject 接收到订阅前的最后一条数据和订阅后的所有数据
AsyncSubject 只接收到最后一条数据
ReplaySubject 接收订阅前和订阅后的所有数据
SerializedSubject 线程安全的Subject,可由其他Subject调用toSerialized转换而来

常用操作符

类型 操作符
创建类型 createjusttimerintervalfromerror
转换类型 mapflatMapconcatMapswitchMapbuffer
过滤类型 filterofTypedebouncethrottleWithTimeoutdistinctdistinctUntilChangedfirstlasttakeskip
结合类型 mergezipcombineLatest
错误处理类型 retryonErrorResumeNext
辅助操作类型 delaysubscribeOndototimeout
条件和布尔类型 ambcontainstakeUntilskipUntil
算术和聚合类型 reducemaxminsum

Scheduler

类型 描述
Schedulers.io 缓存线程池,线程数量无穷大,用于I/O操作
Schedulers.computation 固定线程池,大小为CPU核数,用于CPU密集型计算(无阻塞)
Schedulers.single 单线程池
Schedulers.newThread 为指定任务启动一个新的线程
Schedulers.trampoline 当其它排队的任务完成后,在当前线程排队开始执行
Schedulers.from 使用指定的Executor作为调度器
AndroidSchedulers.mainThread Android的主线程,即UI线程

Plugins

插件,又可称Hook, 可以修改Rxjava的默认行为。

使用RxJavaPlugins可以进行以下三类功能的Hook和自定义:

  • 发射器Observable、Single、Completable和Maybe的生命周期(装载和被订阅)。

  • Rxjava的各类线程调度器Scheduler。

  • Rxjava全局未处理的错误。

使用案例

特别感谢

如果觉得项目还不错,可以考虑打赏一波

你的打赏是我维护的动力,我将会列出所有打赏人员的清单在下方作为凭证,打赏前请留下打赏项目的备注!

pay.png

联系方式

更多资讯内容,欢迎扫描关注我的个人微信公众号:【我的Android开源之旅】

About

RxJava3使用演示, 包含简介、例子、日志和源码等内容。

License:Apache License 2.0


Languages

Language:Java 100.0%