SavedState 模块 · AndroidX 源码指南
AAndroidX 源码指南
SavedState
应用基础 · androidx.savedstate

SavedState 模块1.6.0-alpha01

理解系统回收进程后的轻量恢复,而不是把 SavedState 当数据库。

最后更新 2026-08-01

它保存的是“恢复线索”

SavedState 面向系统发起的进程死亡与实例重建。适合保存输入文本、选择项、滚动位置、筛选条件或对象 ID;不适合保存图片、长列表、数据库副本和业务文件。

当前源码快照的 SavedState 版本是 1.6.0-alpha01

implementation("androidx.savedstate:savedstate:1.6.0-alpha01")
implementation("androidx.savedstate:savedstate-compose:1.6.0-alpha01")

ViewModel 中的 SavedStateHandle 属于 Lifecycle 库族,因此版本跟随 Lifecycle:

implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:2.12.0-alpha01")

三层入口

  1. SavedStateRegistry:宿主级 provider 注册、保存与恢复。
  2. SavedStateHandle:ViewModel 内按 key 读写和观察。
  3. Compose 桥接:读取当前 Registry owner,并分清 rememberSaveable 的所属模块。

恢复不等于持久化

系统可能只在合适的生命周期节点收集状态,用户强制停止、清除数据、卸载应用等场景不保证恢复。真正不能丢的数据必须写入数据库、DataStore 或文件。

相关页面