代码之家  ›  专栏  ›  技术社区  ›  Allan W

可观察物的处理

  •  0
  • Allan W  · 技术社区  · 6 年前

    以前,我会有一系列的主题和订阅他们的创作。

    销毁后,我会将所有主题标记为完整,假设它处理了所有订户。

    使用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()
    }
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   Samuel Eminet    6 年前

    observable.onComplete() onComplete ,则不需要在onComplete之后处理流(这是自动完成的)。

    disposable.dispose()

    如果你没有听完整的事件都是相同的,所以回答你的问题,你不需要两行。

        2
  •  1
  •   Francesc    6 年前

    在onDestroy上这样做不是一个好主意,因为在片段/活动停止和销毁之间有一个间隙。如果您的observable在这个间隔期间触发,您很可能会执行一些UI工作,这将导致异常,因为您正在尝试在活动/片段停止后操作UI对象。

    检查 this this 供参考。

    推荐文章