我有 2 项活动 A 和 B。他们都收听位于这 2 项活动之外的全球范围的 Livedata。当我从活动 A 导航到活动 B 时,这些是报告的生命周期事件。
A -> 暂停
B -> 创建
B -> 开始
B -> 恢复
A -> 停止
我的问题是,在前 4 个步骤中的任何一个中改变 LiveData 都会导致活动 A 仍然接收 LiveData 回调,即使用户已经在活动 B 上。
当 onPause 被调用时,我可以删除活动 A 中的观察者,但我认为 LiveDatas 的整个想法是我不必删除观察者。
问题:一旦用户离开活动,我有哪些选项可以在活动 A 中不接收回调?
活动A
override fun onCreate(savedInstanceState: Bundle?) {
Global.liveData.observe(this, Observer {
doUiWork()
})
}