ViewModel的创建方式
2020-03-08 本文已影响0人
MIRROR1217
在
Jetpack
组件中,我们一般会用到ViewModel
,那么我们来说下它的几种创建模式和应用场景
1.第一种方式
val viewModel by lazy {
ViewModelProvider(this,ViewModelProvider.NewInstanceFactory()).get(modelClass)
}
一般在
Activity
中使用,它只会被创建一次
2.第二种方式
val viewModel by lazy {
ViewModelProvider(requireActivity(),ViewModelProvider.NewInstanceFactory()).get(modelClass)
}
一般被用于
Fragment
,它也只有一个实例,被用于Fragment
的数据共享
3.第三种方式
val viewModel by lazy {
ViewModelProvider.NewInstanceFactory().create(modelClass)
}
一般被用于
Fragment
,但是它会随着Fragment
的重新创建,也会随着Fragment
销毁而销毁,一般配合着ViewPager
里面的Fragment
使用。
ViewModel
现在还不是非常成熟,有些坑需要我们自己去研究的,大家一起学习!