web-dev-qa-db-ger.com

Android - Kontext von einem Rundfunkempfänger aufReceive () zum Senden abrufen

Grundsätzlich möchte ich eine Absicht festlegen und diese an einen Dienst von onReceive () meines BroadcastReceiver weiterleiten.

Bisher habe ich immer View.getContext () verwendet, aber hier stecke ich fest. Wie genau kann ich den Kontext abrufen, damit ich public Intent (Context packageContext, Class<?> cls) verwenden kann?

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

onReceive gibt Ihnen den Kontext. Was willst du noch?

283
Falmarri

Nun, die oben erwähnte Antwort ist nicht von Nutzen. Sie können den Kontext verwenden, solange Sie sich in onReceive befinden. Sobald Ihr Code von onReceive zurückgegeben wurde, ist der Kontext nicht mehr vorhanden.

In Ihrer Problemstellung heißt es also, dass Sie den Dienst mit diesem Kontext in Ihrer Absichtserzeugung starten und dann startService mit diesem Kontextobjekt aufrufen möchten. Das geht nicht.

Lesen Sie hier, was im BroadcastReceiver-Kontext möglich und nicht möglich ist.

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

2
Bibhay Ranjan

Im BroadcastReceiver wird der

onReceive(Context context, Intent intent)

methode liefert Kontext

so

um die Aktivität zu starten

context.startActivity(intent);

und um den Service zu starten

context.startService(intent);
0
L.sagar