ActivityViewModels是一个Kotlin扩展库,用于从ViewModelProvider获取与Activity生命周期绑定的ViewModel实例。lazy ViewModelProvider是使用ViewModelProvider提供的惰性初始化ViewModel实例的方法。
下面是一个使用ActivityViewModel和lazy ViewModelProvider的例子:
使用ActivityViewModel:
class MyViewModel : ViewModel() {
// ...
}
class MyActivity : AppCompatActivity() {
private val viewModel by activityViewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Use the ViewModel
}
}
使用lazy ViewModelProvider:
class MyViewModel : ViewModel() {
// ...
}
class MyActivity : AppCompatActivity() {
private val viewModel by lazy {
ViewModelProvider(this).get(MyViewModel::class.java)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Use the ViewModel
}
}
在使用lazy ViewModelProvider时,我们需要使用ViewModelProvider来获取ViewModel实例。在使用ActivityViewModels时,我们直接使用activityViewModels扩展方法即可。