Android ViewModel 创建方式
private lateinit var mainViewModel: MainViewModel
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mainViewModel = ViewModelProvider(this).get(MainViewModel::class.java)
mainViewModel = ViewModelProvider(requireActivity()).get(MainViewModel::class.java)
}
private val mainViewModel by lazy {
ViewModelProvider(this).get(MainViewModel::class.java)
}
- 3 by viewModels 或 activityViewModels
private val mainViewModel: MainViewModel by viewModels()
private val mainViewModel: MainViewModel by activityViewModels()
private val mainViewModel: MainViewModel by viewModels()