84 votes

Comment obtenir mon contexte d'activité ?

Je ne comprends pas vraiment comment tout cela fonctionne, alors si j'ai un peu de classe ". A qui ont besoin du contexte d'une classe B qui étend Activity Comment puis-je obtenir ce contexte ?

Je cherche un moyen plus efficace que de donner le contexte comme paramètre à la classe A constructeur. Par exemple, si la classe A va avoir des millions d'instances, nous aurions alors des millions de pointeurs redondants vers les Context alors qu'on devrait pouvoir se contenter d'un seul endroit et d'une fonction getter...

0voto

Thomas Points 1395

Si vous avez besoin du contexte de A dans B, vous devez le transmettre à B, et vous pouvez le faire en passant l'activité A comme paramètre, comme d'autres l'ont suggéré. Je ne vois pas vraiment le problème d'avoir les nombreuses instances de A avec leurs propres pointeurs vers B, je ne suis pas sûr que ce soit un surcoût si important.

Mais si tel est le problème, il est possible de conserver le pointeur sur A comme une sorte de variable globale de l'ensemble du système. Application comme l'a suggéré @hasanghaforian. En fait, selon la raison pour laquelle vous avez besoin du contexte, vous pourriez même utiliser le contexte de la classe Application au lieu de cela.

Je suggère de lire cet article sur le contexte pour mieux comprendre le contexte dont vous avez besoin.

0voto

Serg Burlaka Points 674

En Kotlin sera :

activity?.applicationContext?.let {
         it//<- you context
        }

0voto

Ronen Festinger Points 164

La classe MainActivity possède ces propriétés que vous pouvez utiliser :

  • applicationContext
  • baseContext
  • este

Voir ici pour les différences : différence et quand utiliser getApplication(), getApplicationContext(), getBaseContext() et someClass.this

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