Android体系结构组件中AndroidViewModel和ViewModel之间的区别是什么?
问题描述:
我一直在努力的Android体系结构组件一会儿这是在谷歌IO推出2017年Android体系结构组件中AndroidViewModel和ViewModel之间的区别是什么?
他们的一个组件,以避免配置更改它们提供ViewModel
问题,AndroidViewModel
类
按照商务部:
AndroidViewModel:应用情境感知ViewModel
视图模型:的ViewModels也可以用作Activity.Each片段的不同片段之间的通信层可以经由他们的活动
使用相同的密钥获取ViewModel
但对于AndoirdViewModel
场景我可以由类延伸到应用得到应用上下文
它们在Android开发中的实际区别是什么?因为两者都只附加到Activity/Fragment生命周期。
答
但AndoirdViewModel情景,我可以通过一个类延伸到应用类
创建的Application
自己的自定义子类不会奇迹般地使该单个实例提供给ViewModel
获取应用程序上下文。
可以创建Application
的自定义子类,该子类有自己的getInstance()
方法或直接公开单例的方法。谷歌不喜欢这种模式(对此我也不喜欢),所以Google不会引导开发者使用它。
它们在Android开发中的实际区别是什么?
A ViewModel
自己没有好办法得到Context
。 AndroidViewModel
提供Application
用作Context
,并且特别提供Application
单身人士,所以我们确信Context
本身不代表内存泄漏。
你问同一个问题中的2件事,我相信你可以切换标题并关注它为什么使用AndroidViewModel来代替扩展Application。 @CommonsWare给出的答案仍然有效。 通过这种方式,您可以要求删除“重复”标签,因为创建一个新问题以获得良好答案......我不认为这是一个好主意。 – MiguelHincapieC