如何在后台使用而不是在Activity / Fragment中使用RxJava2中的单个观察者。
我知道如果Single在Activity / Fragment中使用,那么它可以添加到复合处理器中并将其处理在Activity / Fragment的onDestroy方法中。
但是当它从其他地方调用时如何处理呢?
如果从Activity / Fragment调用它并且我们想在调用onDestroy之前处理它,还有什么其他方法来处理Single?
ConsumerSingleObserver
返回的两个默认观察者(BiConsumerSingleObserver
和Single
),当你subscribe
处置自己onError
和onSuccess
。如果你传递自己的自定义SingleObserver
,你需要决定何时处理它。
Single将只调用其中一种方法,并且只调用一次。在调用任一方法时,Single终止并且对它的订阅结束。 (http://reactivex.io/documentation/single.html)
在某些情况下,您可能希望在处置之前处置SingleObserver
,在这种情况下,您只需要在dispose
返回的Disposable
上调用subscribe
。你何时何地打电话取决于你的具体情况。
如果你的Single
在生命周期对象被破坏之前没有完成(例如HTTP调用),你必须将观察者放置在生命周期对象的destroy回调中。