你好?我应该如何看待androids架构组件ViewModelStore它是否使使用依赖注入库注入ViewModels的需要无效?</p>
问问题
644 次
2 回答
1
ViewModelStore 与 ViewModel 的依赖注入完全无关。它是特定所有者的 ViewModel 对象的容器。您可以使用 ViewModelStores 的方法获取活动或片段的 ViewModelStore。
ViewModelStore vms = ViewModelStores.of(this);
如果需要,ViewModelStore 可让您控制特定所有者的视图模型对象的生命周期。
于 2017-07-29T06:08:11.947 回答
1
ViewModel与具有 Android 生命周期的活动或片段密切相关。因为它们与这些对象密切相关,所以它们具有依赖注入库不提供的功能、特性和需求。ViewModel 提供的最重要的功能是能够在配置更改时保留其状态,但不能在 Activity 的单独启动时保留,这是开发人员大部分时间需要的。当您需要在活动的单独启动之间保存的状态时,那就是您使用数据库层的时候,例如Room Persistence Library。
所以简单的答案是肯定的。最好使用
ViewModelProviders.of(activity).get(MyViewModel.class)
实例化和查找您的视图模型。
于 2017-07-27T23:22:51.703 回答