对于有此问题的人,
根据Android文档,
由于ViewModel比特定活动和片段实例更长,因此它不应该引用View或任何可能包含对活动上下文的引用的类。如果ViewModel需要Application上下文(例如,查找系统服务),它可以扩展AndroidViewModel类并具有在构造函数中接收Application的构造函数(因为Application类扩展了Context)。
可在此处找到文档: https://developer.android.com/topic/libraries/architecture/viewmodel.html
编辑: 如有重复说明: 我的意思是你可以将类扩展到ViewModel以及AndroidViewModel。当你应该延伸时,上面的解释仅适用于此。上面的链接讲述了MVVM架构的ViewModel,而不是android.arch.lifecycle.ViewModel
答案 0 :(得分:4)
扩展我的评论:
AndroidViewModel
扩展ViewModel
,因此它具有所有相同的功能。 AndroidViewModel唯一增加的功能是它可以识别上下文:初始化AndroidViewModel时,您必须将Application
上下文作为参数传递。
作为一个有用的例子,您可以显示需要Application上下文的toasts。