安卓Jetpack的SavedStateViewModelFactory是一个辅助类,用于创建具有保存状态功能的ViewModel。它可以帮助我们在配置改变(如屏幕旋转)时保持ViewModel的状态。
以下是一个示例代码,展示了如何使用SavedStateViewModelFactory:
class MyViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel() {
// ...
}
val factory = SavedStateViewModelFactory(this)
val viewModel: MyViewModel = ViewModelProvider(this, factory).get(MyViewModel::class.java)
val value = 10
viewModel.savedStateHandle.set("key", value)
val savedValue = viewModel.savedStateHandle.get("key")
上面的代码片段展示了如何使用SavedStateViewModelFactory来创建具有保存状态功能的ViewModel,并且在ViewModel中保存和获取数据。在配置改变时,SavedStateViewModelFactory会自动处理保存和恢复数据的逻辑,使得ViewModel的状态能够得到保持。