7

Ich habe einige Service Klasse, die mehrere Alarme registriert.Bind Service zu BroadcastReceiver

In meinem BroadcastReceiver Klasse, möchte ich die OnReceive() -Methode eine Methode der Dienst Klasse aufzurufen.

Allerdings sehe ich nicht, wie ich sie zusammenbinden kann. Ich habe versucht, die BroadcastReceiver eine innere Klasse zu machen, aber dann habe ich mehr Fehler und konnte den Alarm überhaupt nicht auslösen.

Dank

+0

Ich habe einige Abhilfe gefunden, so dass es nicht mehr relevant ist. Ich würde immer noch gerne wissen, ob das möglich ist. Ich habe alle Arten von peekSerivce() versucht und statische Instanzfelder verwendet, aber keine funktioniert. – Mugen

Antwort

6

Blick auf http://developer.android.com/reference/android/content/BroadcastReceiver.html Lebenszyklus. BroadcastReceiver wird nur zum Behandeln einer Nachricht erstellt. Es bedeutet, dass das Leben sehr kurz ist, und es ist auch staatenlos. Du kannst also nichts daran binden.

Auf jeden Fall können Sie versuchen, eine Service Form onReceive(Context context, Intent intent) Methode von BroadcastReceiver zu starten, wie folgt aus:

public void onReceive(Context context, Intent intent) { 
     Intent intent2 = new Intent(context, GCMService.class); 
     intent2.putExtras(intent); 
     context.startService(intent2); 
} 

Dann a = der Dienst eine Broadcast-Nachricht verarbeiten.