外观
MVVM 架构中 ViewModel 与 View 的生命周期关系是怎样的?
标准回答
ViewModel 保存页面业务状态,通常能跨配置变化保留,但不能自动跨进程死亡保存。
通俗例子
旋转时旧 Activity 消失,新 Activity 仍可获得同一个 ViewModel 中的查询结果;若进程被杀,必要状态要从保存容器或数据层恢复。
深入解释
**谁保存业务状态:**ViewModel 为所选作用域持有 UI 相关数据和逻辑。Activity 因配置改变重建时,可以继续取得同一个作用域中的 ViewModel。
**它为什么不能保存 View:**旧 Activity 的 View 属于已结束的一次界面实例,长期持有会造成泄漏或更新错误。ViewModel 保存数据,新的 View 重新观察并渲染;进程重建仍要依赖可恢复状态。
内容来源
- Android · AI Agent 知识手册 · 原条目
10.1.1