RxJava 1 到RxJava2

RxJava2在国外已广泛应用,国内也逐步采纳。升级至RxJava2解决了Backpressure问题,全面支持ReactiveStreams规范,改进了线程调度器,并引入了Single、Completable、Maybe和Flowable等新特性。

RxJava2 目前已经在国外一些应用使用上,国内应用也有部分用于生产环境,是时候考虑切换到RxJava2。RxJava2主要是解决了Backpressure, 设计符合Reactive-Streams规范,以及其它一些更新。

RxJava 1.X升级RxJava 2.X部分变更
描述RxJava 1.XRxJava 2.X
package包名rx.xxxio.reactivex.xxx
Reactive Streams规范1.X早于Reactive Streams规范出现,仅部分支持规范完全支持
Backpressure 背压对背压的支持不完善Observable设计为不支持背压
新增Flowable支持背压
null空值支持不再支持null值,传入null值会抛出 NullPointerException
Schedulers线程调度器Schedulers.immediate()
Schedulers.trampoline()
Schedulers.computation()
Schedulers.newThread()
Schedulers.io()
Schedulers.from(executor)
AndroidSchedulers.mainThread()
移除Schedulers.immediate()
新增Schedulers.single()
其它未变
Single行为类似Observable,但只会发射一个onSuccessonError按照Reactive Streams规范重新设计,遵循协议onSubscribe(onSuccess/onError)
Completable行为类似Observable,要么全部成功,要么就失败按照Reactive Streams规范重新设计,遵循协议onSubscribe (onComplete/onError)
Maybe2.X新增,行为类似Observable,可能会有一个数据或一个错误,也可能什么都没有。可以将其视为一种返回可空值的方法。这种方法如果不抛出异常的话,将总是会返回一些东西,但是返回值可能为空,也可能不为空。按照Reactive Streams规范设计,遵循协议onSubscribe (onSuccess/onError/onComplete)
Flowable2.X新增,行为类似Observable,按照Reactive Streams规范设计,支持背压Backpressure
SubjectAsyncSubject
BehaviorSubject
PublishSubject
ReplaySubject
UnicastSubject
2.X依然维护这些Subject现有的功能,并新增:
AsyncProcessor
BehaviorProcessor
PublishProcessor
ReplayProcessor
UnicastProcessor
支持背压Backpressure
SubscriberSubscriber由于与Reactive Streams的命名冲突,Subscriber已重命名为Disposable

不同于RxJava1.x,RxJava2.x中没有了一系列的Action/Func接口,取而代之的是与Java8命名类似的函数式接口,如下图:
function N

参考链接

RxJava1.X升级到RxJava2.X笔记
RxJava2 vs RxJava1
RxJava2 浅析


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值