web-dev-qa-db-fra.com

Android - Récupération du contexte d'un récepteur de diffusion onReceive () vers

Je veux essentiellement faire une intention et la transmettre à un service à partir de onReceive () de mon BroadcastReceiver.

Jusqu'à présent, j'ai toujours utilisé View.getContext (), mais ici, je suis bloqué. Comment puis-je obtenir exactement le contexte pour pouvoir utiliser public Intent (Context packageContext, Class<?> cls)?

80
madu
public abstract void onReceive(Context context, Intent intent)

onReceive vous donne le contexte. Que veux-tu de plus?

283
Falmarri

Eh bien, la réponse mentionnée ci-dessus n'est d'aucune utilité. Vous pouvez utiliser le contexte tant que vous êtes dans onReceive. une fois que votre code est revenu de onReceive, le contexte n'existe plus.

Ainsi, votre énoncé de problème indique que vous vouliez démarrer le service en utilisant ce contexte dans votre création d'intention, puis en appelant startService avec cet objet de contexte. Cela ne peut pas être fait.

Lisez ceci ce qui peut et ne peut pas être fait dans le contexte de BroadcastReceiver.

http://developer.Android.com/reference/Android/content/BroadcastReceiver.html

2
Bibhay Ranjan

Dans le BroadcastReceiver,

onReceive(Context context, Intent intent)

la méthode fournit le contexte

alors

pour commencer à utiliser l'activité

context.startActivity(intent);

et pour commencer à utiliser le service

context.startService(intent);
0
L.sagar