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

最佳答案

由于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订户)添加到每个基本反应式类,该类将按原样返回其输入订户/观察者。在前面的两个示例中,由于ResourceSubscriber直接实现Disposable,因此2.x代码现在看起来像这样:
CompositeDisposable composite2 = new CompositeDisposable();

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

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

07-27 13:42