0

我一直在努力的Android体系结构组件一会儿这是在谷歌IO推出2017年Android体系结构组件中AndroidViewModel和ViewModel之间的区别是什么?

他们的一个组件,以避免配置更改它们提供ViewModel问题,AndroidViewModel

按照商务部:

AndroidViewModel:应用情境感知ViewModel

视图模型:的ViewModels也可以用作Activity.Each片段的不同片段之间的通信层可以经由他们的活动

使用相同的密钥获取ViewModel但对于AndoirdViewModel场景我可以由类延伸到应用得到应用上下文

它们在Android开发中的实际区别是什么?因为两者都只附加到Activity/Fragment生命周期。

+0

你问同一个问题中的2件事,我相信你可以切换标题并关注它为什么使用AndroidViewModel来代替扩展Application。 @CommonsWare给出的答案仍然有效。 通过这种方式,您可以要求删除“重复”标签,因为创建一个新问题以获得良好答案......我不认为这是一个好主意。 – MiguelHincapieC

回答

2

但AndoirdViewModel情景,我可以通过一个类延伸到应用类

创建的Application自己的自定义子类不会奇迹般地使该单个实例提供给ViewModel获取应用程序上下文。

可以创建Application的自定义子类,该子类有自己的getInstance()方法或直接公开单例的方法。谷歌不喜欢这种模式(对此我也不喜欢),所以Google不会引导开发者使用它。

它们在Android开发中的实际区别是什么?

A ViewModel自己没有好办法得到ContextAndroidViewModel提供Application用作Context,并且特别提供Application单身人士,所以我们确信Context本身不代表内存泄漏。

相关问题