ViewModel 的生命周期
ViewModel
对象存在的时间范围是获取 ViewModel
时传递给 ViewModelProvider
的 Lifecycle
。ViewModel
将一直留在内存中,直到限定其存在时间范围的 Lifecycle
永久消失:对于 Activity,是在 Activity 完成时;而对于 Fragment,是在 Fragment 分离时。
说明了 Activity 经历屏幕旋转而后结束时所处的各种生命周期状态。该图还在关联的 Activity 生命周期的旁边显示了 ViewModel
的生命周期。此图表说明了 Activity 的各种状态。这些基本状态同样适用于 Fragment 的生命周期。
使用步骤
1.添加 savedstate 依赖库
2.创建自己的 MyViewModel 继承系统的 ViewModel ,并在构造放在中添加 SavedStateHandle 类型参数。
class MyViewModel (var savedStateHandle: SavedStateHandle) : ViewModel()
3.在创建 ViewModel 的时候需要添加 SavedStateViewModelFactory 作为参数。
ViewModelProvider(this,SavedStateViewModelFactory(application, this)).get(MyViewModel ::class.java)