Diffinitive règles pour l'utilisation d'Android getBaseContext, getcontexteapplication ou à l'aide d'une Activité de “ce”
J'ai googlé cette question beaucoup de choses et nous avons trouvé une multitude de recommandations sur l'utilisation getBaseContext, getcontexteapplication ou une Activité propre ce pointeur.
Trois règles qui reviennent souvent et qui semble faire beaucoup de sens sont -
- Pour une longue durée de vie de référence pour une
contexte de l'activité
getcontexteapplication doit être utilisé
comme cela existe aussi longtemps que votre
l'application existe - Les contextes dont les cycles de vie sont
liés à leurs activités, de leur propre
contexte d'activité (ce) devrait être
utilisé - Magasin contexte des pointeurs de manière statique
avec de grandes précautions (et, si
possible, pas du tout)
En supposant que ce sont correctes, qu'est-ce que l'utilisation de getBaseContext?
J'ai vu un grand nombre d'exemples où de nouvelles intentions sont créés à l'aide de -
Intent intent = new Intent(getBaseContext(), myClass.class);
Par opposition à
Intent intent = new Intent(this, myClass.class);
Qui est la bonne, ou recommandé, méthode et pourquoi?
Vous devez vous connecter pour publier un commentaire.
La getBaseContext() est la méthode de ContextWrapper. Et ContextWrapper est, "l'utilisation de Proxy de mise en œuvre de Contexte que, tout simplement, délègue tous ses appels vers un autre Contexte. Peut être sous-classé à modifier les comportements, sans changer le Contexte d'origine." (comme par javadoc)
Donc, ce est utilisé pour déléguer les appels vers un autre contexte.
MyActivity.this
. getBaseContext travaillé pour vous, parce que votre classe imbriquée n'ont pas cette méthode si elle est automatiquement réglée à votre activité de la classe.