ViewModel SavedState 是 Jetpack ViewModel 组件的一部分,它允许 ViewModel 保存和恢复状态数据,即使在设备配置更改(如屏幕旋转)或进程被系统回收后重新创建时,也能保留和恢复 ViewModel 的状态。以下是 ViewModel SavedState 的工作原理及其基本使用方法。
ViewModel SavedState 原理
-
SavedStateHandle:
SavedStateHandle是 ViewModel SavedState 的核心组件。它是一个键值对映射,用于保存和恢复状态数据。SavedStateHandle可以在 ViewModel 中使用,用于保存需要持久化的数据。 -
SavedStateRegistry:
SavedStateRegistry是一个接口,允许组件(如 Activity 和 Fragment)保存和恢复其状态。ViewModel 使用SavedStateRegistry来管理SavedStateHandle的数据。 -
自动保存和恢复:当配置更改或进程重启时,ViewModel 可以通过
SavedStateHandle自动保存和恢复状态数据。系统会在适当的时间点保存数据,并在 ViewModel 重新创建时恢复数据。 -
集成 Lifecycle:ViewModel SavedState 与 Lifecycle 组件集成,确保在适当的生命周期事件中保存和恢复状态数据。
基本使用方法
-
添加依赖项:在项目的
build.gradle文件中添加 ViewModel SavedState 的依赖项。dependencies { def lifecycle_version = "2.3.1" implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version" } -
创建 ViewModel 并使用 SavedStateHandle:创建一个继承自
ViewModel的类,并通过构造函数注入SavedStateHandle。使用SavedStateHandle保存和恢复状态数据。

最低0.47元/天 解锁文章
1056

被折叠的 条评论
为什么被折叠?



