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

时间:2018-10-29 10:05:42

标签: android rx-java2 rx-android

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

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

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

如果从Activity / Fragment调用Single并希望在onDestroy调用之前对其进行处置,还有其他处置方法吗?

1 个答案:

答案 0 :(得分:0)

当您ConsumerSingleObserver处置BiConsumerSingleObserverSingle时,subscribe返回的两个默认观察者(onErroronSuccess) 。如果您传入自己的自定义SingleObserver,则需要决定何时处置它。

  

Single只会调用这些方法之一,并且只会调用一次。调用任一方法后,Single终止,对其的订阅结束。   (http://reactivex.io/documentation/single.html

在某些情况下,您可能需要先处置SingleObserver,然后再处置它,在这种情况下,您只需要在{{1}返回的dispose上调用Disposable }。呼叫的时间和地点实际上取决于您的具体情况。

如果您的subscribe在销毁生命周期的对象(例如HTTP调用)之前没有完成,则必须将观察者置于生命周期对象的destroy回调中。