# Jetpack
# ViewModel
ViewModel 专门用于存放与界面相关的数据,只要界面上看得到的数据,都应该存放在 ViewModel 中
# 引入依赖
\app\build.gradle
dependencies {
implementation "androidx.lifecycle:lifecycle-extensions:2.1.0"
}
# 创建 ViewModel 类
\MainViewModel.kt
class MainViewModel : ViewModel() {
var 变量名 = 值
}
# 使用
//获取ViewModel
viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
//访问ViewModel变量
viewModel.变量名
# 传参
新建类 \MainViewModelFactoy.kt
class MainViewModelFactoy(private val 参数名: 数据类型) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return MainViewModel(参数名) as T
}
}
//获取ViewModel
viewModel = ViewModelProviders.of(this,MainViewModelFactoy(参数名 = 默认值)).get(MainViewModel::class.java)
# Lifecycles
Lifecycles 可以让任何一个类都能轻松感知到 Activity 的生命周期,同时又不需要在 Activity 中编写太多的额外逻辑