getApplicationContext (), getBaseContext (), getApplication (), getParent ()


Réponses:


33

getApplicationContext() Le contexte de l'application est associé à l'application et sera toujours le même tout au long du cycle de vie.

getBasecontext()ne doit pas être utilisé, utilisez simplement à la Contextplace de celui qui est associé à l'activité et peut être détruit lorsque l'activité est détruite.


16
qu'en est-il de getApplication () et getParent ()
Nikunj Patel

107

getApplicationContext () Le contexte d'application est associé à l'application et sera toujours le même tout au long du cycle de vie.

getBasecontext () ne doit pas être utilisé, utilisez simplement Context à la place de celui-ci qui est associé à l'activité et qui pourrait éventuellement être détruit lorsque l'activité est détruite.

getApplication () n'est disponible que pour l'activité et les services. Bien que dans les implémentations actuelles d'activité et de service Android, getApplication () et getApplicationContext () renvoient le même objet, il n'y a aucune garantie que ce sera toujours le cas (par exemple, dans une implémentation de fournisseur spécifique). Donc, si vous voulez la classe Application que vous avez enregistrée dans le Manifest, vous ne devez jamais appeler getApplicationContext () et la transtyper vers votre application, car ce n'est peut-être pas l'instance d'application (que vous avez évidemment expérimentée avec le framework de test).

getParent () retourne l'objet de l'activité si la vue courante est un enfant. En d'autres termes, renvoie l'objet activité hébergeant la vue enfant lorsqu'il est appelé dans l'enfant.


16
Comme vous l'avez mentionné, nous ne devrions pas utiliser getBaseContext (), si ce n'est pas si important, alors pourquoi c'est dans le codage et quels sont ses principaux avantages. veuillez m'expliquer à ce sujet
Pir Fahim Shah

getBaseContext () doit être utilisé dans des situations très spécifiques. Il y a une très bonne explication ici - medium.com/@ali.muzaffar
...
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.