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.

Harinder
la source
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.

Ravi
la source
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
...