android - 我们是否需要在活动的 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()
}
解决方案
不需要(也不应该调用)调用Activity/fragment onComplete
,onDestroy
因为它用于发出数据传输完成的流,并且当视图被销毁时它与完成不同。你应该只处置 Disposable因为 Dispose 是一个不同的用例并停止任何进一步的基于推送的通知,而不是告诉观察者 onError/onComplete。
从文档:
通知 Observer Observable 已发送完基于推送的通知。
要了解 dispose 和 complete 之间的区别,请参阅以下链接:
推荐阅读
- angular8 - ag-grid:当列可编辑时如何在 ag-grid 中获取旧值和新值
- java - 我可以在 POI 库的 CellRangeAddressList 中传递列地址列表吗?
- windows - 如何发送电子邮件,因为我有很多错误。谢谢
- javascript - 如何将状态设置为过滤项目反应
- javascript - 无法通过脚本中的 v-html 呈现内容
- java - https 用于本地网络上的(java + angular)开发环境会导致 CORS
- python - 使用 cython 对 C++ 向量进行排序
- java - JAVA SOAP:签名 SOAP 消息的问题
- node.js - Firestore,使用快照获取文档 ID
- python - 水平条形图中组之间的空间