0

我有 2 项活动 A 和 B。他们都收听位于这 2 项活动之外的全球范围的 Livedata。当我从活动 A 导航到活动 B 时,这些是报告的生命周期事件。

  1. A -> 暂停

  2. B -> 创建

  3. B -> 开始

  4. B -> 恢复

  5. A -> 停止

我的问题是,在前 4 个步骤中的任何一个中改变 LiveData 都会导致活动 A 仍然接收 LiveData 回调,即使用户已经在活动 B 上。

当 onPause 被调用时,我可以删除活动 A 中的观察者,但我认为 LiveDatas 的整个想法是我不必删除观察者。

问题:一旦用户离开活动,我有哪些选项可以在活动 A 中不接收回调?

活动A

 override fun onCreate(savedInstanceState: Bundle?) {
    Global.liveData.observe(this, Observer {
        doUiWork()
    })
 }
4

0 回答 0