RxJava 2相比于RxJava 1,改动还是比较大的,这里我们来简单说一下API上的改变
1.Flowable
RxJava1 中 Observable 不能很好地支持 backpressure ,最常见的例如UI事件,而不处理backpressure有可能导致MissingBackpressureException的出现。所以在 RxJava2 中 Oberservable 不再支持 backpressure ,而使用新增的 Flowable 来支持 backpressure 。
Flowable的用法跟原先的Observable是一样的。
2.ActionN 和 FuncN 改名
ActionN 和 FuncN 遵循Java 8的命名规则。
其中,Action0 改名成Action,Action1改名成Consumer,而Action2改名成了BiConsumer,而Action3 - Action9都不再使用了,ActionN变成了Consumer<Object[]> 。
同样,Func改名成Function,Func2改名成BiFunction,Func3 - Func9 改名成 Function3 - Function9,FuncN 由 Function<Object[], R> 取代。
3.Observable.OnSubscribe 变成 ObservableOnSubscribe
RxJava1的写法:
Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("hello");
}
}).subscribe(new Action1<String>() {
@Override
public void call(String s) {
System.out.println(s);
}
});
RxJava2的写法:
Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> e) throws Exception {
e.onNext("hello");
}
}).subscribe(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
</