首页 > 解决方案 > 我们是否需要在活动的 onDestroy() 方法中调用主题的 onComplete() ?

问题描述

如果在 ActivityA 中,它保持引用

private val subjectA: PublishSubject<ObjectB> = PublishSubject.create()
private var dispose: Disposable? = null

我们是否需要在Activity的onDestroy()方法中调用主体的onComplete()方法

override fun onDestroy() {
    subjectA.onComplete()
    dispose?.dispose()
    super.onDestroy()
}

标签: androidrx-javarx-java2rx-kotlin2

解决方案


不需要(也不应该调用)调用Activity/fragment onCompleteonDestroy因为它用于发出数据传输完成的流,并且当视图被销毁时它与完成不同。你应该只处置 Disposable因为 Dispose 是一个不同的用例并停止任何进一步的基于推送的通知,而不是告诉观察者 onError/onComplete。

从文档:

通知 Observer Observable 已发送完基于推送的通知。

要了解 dispose 和 complete 之间的区别,请参阅以下链接:


推荐阅读