【发布时间】:2017-12-15 01:23:21
【问题描述】:
对于任何有这个问题的人,
根据 Android 文档,
由于 ViewModel 比特定的活动和片段实例化的寿命更长,它不应该引用视图或任何可能持有对活动上下文的引用的类。如果 ViewModel 需要 Application 上下文(例如,寻找系统服务),它可以扩展 AndroidViewModel 类,并在构造函数中有一个接收 Application 的构造函数(因为 Application 类扩展了 Context)。
文档可以在这里找到: https://developer.android.com/topic/libraries/architecture/viewmodel.html
编辑: 重复解释: 我的意思是您可以将类扩展到 ViewModel 以及 AndroidViewModel。当您应该扩展哪个时,上述解释仅用于此。上面的链接讲述的是 MVVM 架构的 ViewModel,而不是 android.arch.lifecycle.ViewModel
【问题讨论】:
-
我的意思是你可以将类扩展到 ViewModel 以及 AndroidViewModel。当您应该扩展哪个时,上述解释仅用于此。上面的链接一般讲述的是 MVVM 架构的 ViewModel,而不是 android.arch.lifecycle.ViewModel
-
@M0CH1R0N:请阅读以上评论。如果你觉得这是重复的帖子,我会尽快删除它。谢谢。
-
我的错,我重读了你的问题。 AndroidViewModel 继承了 ViewModel,因此它具有所有相同的功能。 AndroidViewModel 唯一添加的功能是它是上下文感知的:初始化 AndroidViewModel 时,您必须将上下文作为参数传递。例如,如果您想显示敬酒,可以使用此选项。
-
这个帖子可以重新打开@IntelliJ Amiya吗?
-
谢谢你。
标签: android android-mvvm android-architecture-lifecycle