Android中RxJava2中的subscribe()
和subscribeWith()
有什么区别?这两个函数都用于在Observable上订阅Observer。这两个功能有什么主要区别?
在哪里使用subscribe以及在哪里使用subscribeWith。如果可能,请提供代码示例。
答案 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。为了解决这个问题,方法EsubscribeWith
(E订户)已被添加到每个基本反应类中,它按原样返回其输入订户/观察者。通过之前的两个示例,2.x代码现在看起来像这样,因为ResourceSubscriber
直接实现Disposable
:CompositeDisposable composite2 = new CompositeDisposable(); composite2.add(Flowable.range(1, 5).subscribeWith(subscriber));