外观
LiveData 如何感知 Lifecycle 并自动管理观察者?
标准回答
调用 observe(lifecycleOwner, observer) 后,LiveData 监听该 owner 的生命周期:处于 STARTED 或 RESUMED 时视为活跃并分发更新;不活跃时暂停分发;进入 DESTROYED 时移除观察者。observeForever 不受这套生命周期自动移除机制保护,需要主动 removeObserver。
通俗例子
Fragment 用 viewLifecycleOwner 观察,当 View 销毁时观察关系被清理;重新创建 View 后重新观察并显示当前数据。
深入解释
**什么时候推送更新:**普通带 LifecycleOwner 的观察者,在 owner 处于 STARTED 或 RESUMED 等活跃状态时接收更新;不活跃时不会照常向这份界面分发。
**生命周期结束以后:**owner 销毁时相关观察者会被移除。observeForever 不受这套生命周期自动管理,需要手动移除,不能把两种观察方式当成一样。
内容来源
- Android · AI Agent 知识手册 · 原条目
10.1.2