2016-04-18 4 views
-1

Ich habe einen Service [a], der Sensordaten protokolliert. Dieser Dienst ist an den anrufenden Dienst gebunden [b]. Allerdings muss ich den Logger-Service manuell mit startService(intent) bevor Binding starten, weil ich Th onCreate() - Methode ausführen muss.Stop gebunden Sensor Listener Service

Gibt es eine Möglichkeit, den Dienst [a] zu töten, damit [b] informiert wird? (Bevorzugt aus der onSensorChanged -Methode von [a] und in eine Weise, dass onServiceDisconnected genannt wird)

Antwort

0

Nach der akzeptierten Antwort von this Question, es ist eigentlich sehr einfach. Nach dem Anruf startService() einfach an den Service binden und das Context.BIND_NOT_FOREGROUND-Flag setzen.

Wenn Sie dann stopSelf() (nach dem Aufheben der Registrierung des Hörers in meinem Fall) aus dem gebundenen Service aufrufen, wird der Prozess zerstört und onServiceDisconnected wird aufgerufen. Es könnte nicht die beste Lösung sein, denn onServiceDisconnected wird auch aufgerufen, wenn ein Fehler den Dienst tötet ... Besser wäre eine Sendung zu senden. Aber es hat mein Problem gelöst.