android ViewModelStore是一个依赖注入器

时间:2017-06-02 21:05:30

标签: android android-architecture-components

您好?我应该如何看待orroids架构组件ViewModelStore是否使用依赖注入库注入ViewModels的需要无效?

2 个答案:

答案 0 :(得分:1)

ViewModels are intimately tied to Activities or Fragments,包含Android生命周期的内容。因为它们与这些对象紧密相关,所以它们具有依赖注入库不提供的功能,特性和需求。 ViewModel提供的最重要的功能是能够在配置更改时保留其状态,但不能在Activity的单独启动上保留,这是开发人员大多数时间所需要的。当您需要在活动的单独启动之间保存的状态时,就是在您使用数据库层时,例如Room Persistence Library

所以简单的答案是肯定的。最好使用

ViewModelProviders.of(activity).get(MyViewModel.class)

实例化并查找您的视图模型。

答案 1 :(得分:1)

ViewModelStore与ViewModel的依赖注入完全无关。它是特定所有者的ViewModel对象的容器。您可以使用ViewModelStores的方法获取活动或片段的ViewModelStore。

  ViewModelStore vms = ViewModelStores.of(this);

ViewModelStore可让您根据需要控制特定所有者的viewmodel对象的生命周期。