当在后台而不是在活动/片段中使用时,如何在RxJava2中处理单个观察者



当在后台而不是在活动/片段中使用时,如何在RxJava2中处理单个观察者。

我知道如果Single在Activity/Fragment中使用,那么它可以添加到复合处理器中,并在Activity/Fragment的onDestroy方法中处理。

但是,当它从其他地方被调用时,该如何处理呢?

此外,如果Single是从Activity/Fragment调用的,并且我们希望在调用onDestroy之前处理它,那么处理它的其他方法是什么?

subscribe自行处理onErroronSuccess时由Single返回的两个默认观察程序(ConsumerSingleObserverBiConsumerSingleObserver(。如果你通过了自己的自定义SingleObserver,你需要决定何时处理它。

Single将只调用其中一个方法,并且只调用一次。调用任一方法后,Single将终止,对它的订阅也将结束。(http://reactivex.io/documentation/single.html)

在某些情况下,您可能希望在SingleObserver自行处理之前先处理它,在这种情况下,只需要对subscribe返回的Disposable调用dispose。你何时何地打电话取决于你的具体情况。

如果您的Single在生命周期对象被销毁之前没有完成(例如HTTP调用(,则必须在该生命周期对象的销毁回调中处理观察器。

相关内容

  • 没有找到相关文章

最新更新