简单介绍JetPack LifeCycle的使用方式
项目大概结构:
1、在项目中引用ViewModel库:
在app的build.gradle文件的依赖内添加
implementation 'androidx.lifecycle:lifecycle-viewmodel:2.2.0'
如
注:项目需为Androidx项目
2、 新建ViewModwel的继承类,进行逻辑处理的类:
这里的ViewModel继承类只进行计数和打印次数
3、在Activity中使用ViewModel的继承类:
获取计数的实例化类
countViewModel = new ViewModelProvider(this).get(CountViewModel.class);
注,ViewModelProvider()内传入的是Activity,即和ViewModel和该Activity关联,Activity被销毁时,ViewModel也将被销毁
若是ViewModel不希望被销毁,CountViewModel可改继承AndroidViewModel类,关联时的ViewModelProvider()参数使用Application
我这边在onStart中进行打印数字,当每次激活onStart时,计数次数将自增并打印次数
下图是每次激活onStart后打印的内容
结语:ViewModel的特点是Activity生命周期不会影响到ViewModel,只有在Activity被销毁时才会被销毁,在MVVM中起到重要的作用,是视图与数据模型之间的桥梁,即能分离开视图和数据模型,又能数据通信。