jetpack

Jetpack ViewModel SavedState 程序意

2021-05-14  本文已影响0人  马路牙子666

ViewModel 的生命周期
ViewModel 对象存在的时间范围是获取 ViewModel 时传递给 ViewModelProviderLifecycleViewModel 将一直留在内存中,直到限定其存在时间范围的 Lifecycle 永久消失:对于 Activity,是在 Activity 完成时;而对于 Fragment,是在 Fragment 分离时。

说明了 Activity 经历屏幕旋转而后结束时所处的各种生命周期状态。该图还在关联的 Activity 生命周期的旁边显示了 ViewModel 的生命周期。此图表说明了 Activity 的各种状态。这些基本状态同样适用于 Fragment 的生命周期。

image.png

使用步骤

1.添加 savedstate 依赖库

2.创建自己的 MyViewModel 继承系统的 ViewModel ,并在构造放在中添加 SavedStateHandle 类型参数。

class MyViewModel (var savedStateHandle: SavedStateHandle) : ViewModel() 

3.在创建 ViewModel 的时候需要添加 SavedStateViewModelFactory 作为参数。

ViewModelProvider(this,SavedStateViewModelFactory(application, this)).get(MyViewModel ::class.java)
上一篇下一篇

猜你喜欢

热点阅读