Smilekoko / RxJava3Sample

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RxJava3Sample

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

关于作者

原项目地址

演示效果

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全局未处理的错误。

使用案例

特别感谢

About

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

License:Apache License 2.0


Languages

Language:Java 100.0%