以前,我会有一系列的主题和订阅他们的创作。
销毁后,我会将所有主题标记为完整,假设它处理了所有订户。
使用androidstudio3.1,我会收到任何“未使用”的用户的警告。解决方法是将它们添加到一个“可完全丢弃”的容器中,然后销毁。
“复合一次性”是所有我需要适当取消销毁后的要求?我以前的评分方法有什么作用吗?在这种情况下有必要吗?
作为代码示例:
val observable: PublishSubject<Int> = PublishSubject.create() val disposable = observable.subscribe { /* subscription */ } fun onDestroy() { observable.onComplete() // is this line necessary or helpful? disposable.dispose() }
observable.onComplete() onComplete ,则不需要在onComplete之后处理流(这是自动完成的)。
observable.onComplete()
onComplete
disposable.dispose()
如果你没有听完整的事件都是相同的,所以回答你的问题,你不需要两行。
在onDestroy上这样做不是一个好主意,因为在片段/活动停止和销毁之间有一个间隙。如果您的observable在这个间隔期间触发,您很可能会执行一些UI工作,这将导致异常,因为您正在尝试在活动/片段停止后操作UI对象。
检查 this 和 this 供参考。