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现在还不是非常成熟,有些坑需要我们自己去研究的,大家一起学习!

上一篇 下一篇

猜你喜欢

热点阅读