Contexte d’intention Android

Quelqu’un peut-il m’expliquer s’il vous plaît:

Intent intent = new Intent(Context, AlarmReceiver.class); 

Je n’ai jamais compris et je pense sérieusement que je ne le ferai jamais si quelqu’un n’essaie pas de m’expliquer cela en profondeur. Tout ce contexte est déroutant pour moi. Parfois cela fonctionne comme ceci:

 Intent intent = new Intent(getBaseContext(), AlarmReceiver.class); 

Parfois, cela ne fonctionnera pas comme ça mais il accepte seulement:

  Intent intent = new Intent(context, AlarmReceiver.class); 

Parfois c’est:

 Intent intent = new Intent(this, AlarmReceiver.class); 

etc. etc. et beaucoup d’autres.

Je comprends les bases du contexte mais combien y en a-t-il? Et pourquoi éclipse me jette-t-elle une erreur une fois et une autre fois c’est bien? Pourquoi avons-nous besoin de déclarer le contexte parfois? :

 Context context; 

Je suis incapable de trouver le bon contexte pour toutes les situations. Comment puis-je savoir quel est le bon dans chaque situation?

Tout d’abord, laissez-moi vous expliquer ce que le contexte est un peu mieux, puis passons à la façon dont il peut être utilisé et reçu. Essentiellement, le contexte est une référence à la liaison de vos ressources à votre programme. Chaque object reçoit son propre contexte, qui contient les ressources nécessaires pour définir cet object. Il est nécessaire pour de nombreux objects à créer et pour obtenir des informations d’identification de programme, entre autres. Cela le rend inestimable pour mettre en place de nouvelles vues et activités, mais il peut également être utilisé à d’autres fins. Voir aussi cette réponse pour plus d’informations.

Le contexte d’un article peut provenir de divers endroits. Parfois, il est stocké et doit être récupéré, parfois il est hérité. Fondamentalement, il s’agit d’une programmation orientée object.

Juste pour vous donner quelques exemples:

L’activité hérite du contexte. Ainsi, si vous êtes dans une activité, il vous suffit de vous transmettre pour utiliser le contexte. Il contient également un pointeur sur getBaseContext() . Il se peut que vous ayez parfois besoin de faire référence à cela, si vous avez besoin de l’intégralité du contexte de l’application, mais très probablement, vous ne le ferez pas pendant un certain temps.

La vue n’hérite pas du contexte. Cependant, il a une méthode getContext () . Si vous avez besoin d’un contexte depuis une vue, c’est la manière de l’obtenir. Ce contexte ne sera pas complet, mais aura uniquement le contexte pour le contenu de la vue.

Les fragments n’héritent pas non plus du contexte. Ils contiennent une méthode getActivity () qui, si le fragment est actif, renverra l’activité, qui est le contexte du fragment.

BroadcastReceivers n’hérite pas non plus du contexte. En fait, ils ne contiennent aucun contexte, mais reçoivent simplement le contexte actuel lorsqu’un événement est reçu (comme onReceive (contexte contextuel, intention d’intention) )

Capacités de contexte

Les actions communes que vous pouvez effectuer en toute sécurité avec un object Context donné dépendent de l’origine de l’origine. Vous trouverez ci-dessous un tableau des lieux communs auxquels une application recevra un contexte, et dans chaque cas, ce qui est utile pour:

entrer la description de l'image ici

  1. Une application PEUT démarrer une activité à partir de là, mais une nouvelle tâche doit être créée. Cela peut convenir à des cas d’utilisation spécifiques, mais peut créer des comportements de stack arrière non standard dans votre application et n’est généralement pas recommandé ou considéré comme une bonne pratique.
  2. Ceci est légal, mais l’inflation se fera avec le thème par défaut du système sur lequel vous travaillez, et non ce qui est défini dans votre application.
  3. Autorisé si le récepteur est nul, ce qui est utilisé pour obtenir la valeur actuelle d’une diffusion persistante, sur Android 4.2 et supérieur.

Article original ici .

Ce que je comprends au moyen du contexte, c’est l’environnement. En termes simples, le contexte est l’environnement de tout. Ainsi, lorsque vous utilisez une forme de contexte, vous devez décider quel devrait être l’environnement des choses pour lesquelles vous utilisez le contexte.

Par exemple, si vous souhaitez que certaines données ou certains champs restnt dans l’application, vous devez les définir dans la classe d’application.

Maintenant, lorsque vous obtenez un contexte d’application dans l’un de vos composants de votre application, ce champ que vous avez déclaré dans la classe d’application sera dans votre contexte. Vous pouvez donc y accéder.

La même chose est vraie pour tout type de contexte.

Si vous essayez d’utiliser alertDialog dans le composant de service en utilisant le contexte “this”. Essayez celui-ci et je parie que vous obtiendrez sûrement une exception car “this” représente l’environnement de service lorsqu’il est utilisé. t append une fenêtre dans ce champ. Par conséquent, cela vous indiquera la mauvaise exception de jeton. Ce qui signifie que le jeton généré pour la vue environnante n’est pas correct pour que alertDialog s’affiche.

J’espère que cela vous donne une brève idée de ce que vous voulez.