如何学习RxJava3?有这个项目就够了!

前言 最近跳槽到了一家新的公司, 居然发现这家公司的项目大量使用了RxJava3相关的技术, 这让我这个Rx系列轻度使用者有些无所适从.
俗话说, 千学不如一看, 千看不如一练. 为了能够快速地熟悉和掌握RxJava3相关的内容, 我参照了官方文档并结合了之前使用的经验, 写了一个小的学习项目RxJava3Sample, 里面包含了文档简介、例子、日志展示和源码等内容。
就这样, 我看着文档一遍遍地敲着代码学习, 掌握的速度非常的迅速. 有对RxJava3感兴趣的不妨把项目下下来, 本地跑一跑试一试, 效果绝对出乎你想象!
好了话不多说, 下面我来简单介绍一下这个项目.
项目地址 https://github.com/xuexiangjys/RxJava3Sample
演示效果
发射器类型

类型 描述
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转换而来
常用操作符
类型 操作符
创建类型 create 、just 、timer 、interval 、from 、error
转换类型 map 、flatMap 、concatMap 、switchMap 、buffer
过滤类型 filter 、ofType 、debounce 、throttleWithTimeout 、distinct 、distinctUntilChanged 、first 、last 、take 、skip
结合类型 merge 、zip 、combineLatest
错误处理类型 retry 、onErrorResumeNext
辅助操作类型 delay 、subscribeOn 、do 、to 、timeout
条件和布尔类型 amb 、contains 、takeUntil 、skipUntil
算术和聚合类型 reduce 、max 、min 、sum
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全局未处理的错误。
特别感谢
  • RxDocs
  • 中文文档
  • RxJava Wiki
最后 【如何学习RxJava3?有这个项目就够了!】如果你觉得这个项目对你学习RxJava3有所帮助, 你可以点击star进行收藏或者将其分享出去, 让更多的人了解和掌握RxJava3!
我是xuexiangjys,一枚热爱学习,爱好编程,致力于Android架构研究以及开源项目经验分享的技术up主。获取更多资讯,欢迎微信搜索公众号: 【我的Android开源之旅】

    推荐阅读