Applications Android : Qu’est-ce que le contexte dans Android ?


Faisons simple.

La documentation officielle d'Android sur le Contexte dit qu'il s'agit d'une -


Interface aux informations globales sur un environnement d'application

Donc, en gros, c'est l'objet que l'exécution d'Android remet à chaque = application Android qui démarre. Il contient toutes les informations globales que l'app a besoin de connaître - ressources de chaînes, ressources d'images, composants Android dans l'app (Activity Service, Broadcast Receiver & Content Provider).

Beaucoup de développeurs inexpérimentés font l'erreur de supposer qu'il n'y a qu'une seule instance de cette classe - ce qui conduira à des fuites de mémoire dans l'app Android.

Lorsque vous faites getApplicationContext() vous obtenez un objet Singleton Context. Mais lorsque vous faites le getContext(), vous n'obtenez pas le même contexte Singleton. Chaque Activity obtient sa propre instance de Context (il suffit d'imprimer le hashcode de l'objet contextuel). Même les services obtiennent leur propre instance d'objet de contexte.

Si l'on ne prête pas attention à ce détail infime, cela conduira à des applications Android de mauvaise performance qui peuvent même s'écraser. Je pense personnellement que c'est souvent le concept le plus incompris dans le développement d'applications Android.

Si vous voulez plus de détails sur ce qui conduit à une fuite de mémoire, comment la détecter, pourquoi elle se produit et comment l'éviter n'hésitez pas à visiter cette série de vidéos.