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?
public abstract void onReceive(Context context, Intent intent)
onReceive
gibt Ihnen den Kontext. Was willst du noch?
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
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);