211 votes

AndroidViewModel vs ViewModel

Avec l'introduction de l'Android Composants de l'Architecture de la bibliothèque, plusieurs nouvelles catégories ont été introduites, notamment AndroidViewModel et ViewModel. Cependant, j'ai de la difficulté à comprendre la différence entre ces deux classes. La documentation décrit de façon succincte AndroidViewModel comme suit:

Le contexte de l'Application conscient ViewModel

J'apprécie la concision, mais qu'est-ce exactement est ce que cela implique? Quand doit-on choisir d'utiliser AndroidViewModel sur ViewModel , et vice-versa?

271voto

Alex Points 2578

Si vous avez besoin d'utiliser le contexte à l'intérieur de votre viewmodel vous devez utiliser AndroidViewModel, car il contient le contexte de l'application (pour récupérer le contexte d'appel getApplication() ), sinon utiliser des ViewModel.

MODIFIER

AndroidViewModel a le Contexte de l'Application. Nous savons tous d'Avoir statique instance de Contexte est le Mal!(peut causer la Fuite de Mémoire!!)

Mais, Ayant statique de l'instance de l'Application n'est pas mauvais que vous le pensez

Parce que, il y a une seule instance de l'Application dans notre application en cours d'exécution.

Donc, à l'aide de & ayant instance de l'Application en classe spécifique n'est pas de problème en général.

Mais, si l'instance de l'Application de référence, c'est un problème de référence du cycle de problème.

Voir Aussi à propos de l'Instance de l'Application

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X