android中的RxJava2中的subscribe()和subscribeWith()有什么区别?

时间:2017-12-23 09:02:53

标签: java android reactive-programming rx-java2

Android中RxJava2中的subscribe()subscribeWith()有什么区别?这两个函数都用于在Observable上订阅Observer。这两个功能有什么主要区别? 在哪里使用subscribe以及在哪里使用subscribeWith。如果可能,请提供代码示例。

1 个答案:

答案 0 :(得分:4)

  

自1.x Observable.subscribe(Subscriber)返回Subscription以来,用户经常将Subscription添加到CompositeSubscription,例如:

CompositeSubscription composite = new CompositeSubscription();

composite.add(Observable.range(1, 5).subscribe(new TestSubscriber<Integer>()));
     

由于Reactive-Streams规范,Publisher.subscribe返回void,模式本身不再适用于2.0。为了解决这个问题,方法E subscribeWith(E订户)已被添加到每个基本反应类中,它按原样返回其输入订户/观察者。通过之前的两个示例,2.x代码现在看起来像这样,因为ResourceSubscriber直接实现Disposable

CompositeDisposable composite2 = new CompositeDisposable();

composite2.add(Flowable.range(1, 5).subscribeWith(subscriber));

来源:What's different in [RxJava] 2.0