2017-06-02 4 views

Répondre

1

ViewModels are intimately tied to Activities or Fragments, les choses avec un cycle de vie Android. Parce qu'ils sont si étroitement liés à ces objets, ils ont des fonctions, des caractéristiques et des besoins qu'une bibliothèque d'injection de dépendance ne fournit pas. La fonctionnalité la plus importante qu'un ViewModel fournit est la possibilité de conserver son état sur les changements de configuration, mais pas sur les lancements distincts de l'activité, ce dont les développeurs ont le plus souvent besoin. Lorsque vous avez besoin d'un état qui est enregistré entre des lancements distincts d'une activité, vous utilisez une couche de base de données, telle que Room Persistence Library.

Donc la réponse simple est OUI. Il est préférable d'utiliser

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

pour instancier et rechercher vos modèles de vue.

0

ViewModelStore n'est pas du tout lié à l'injection de dépendance de ViewModel. C'est un conteneur d'objets ViewModel d'un propriétaire particulier. Vous pouvez obtenir ViewModelStore d'une activité ou d'un fragment en utilisant la méthode de ViewModelStores. ViewModelStore vous permet de contrôler la durée de vie des objets viewmodel d'un propriétaire particulier, si vous en avez besoin. ViewModelStore vous permet de contrôler la durée de vie des objets viewmodel d'un propriétaire particulier.