RemoteService garantiert callbacks entfernen bevor Activity beendet wird

E

eppinator

Neues Mitglied
0
Ich habe einen Service, der mehrere Clients bedienen kann und u.A. Callbacks entgegennimmt.

Mein Problem ist jetzt: wie kann ich in einer Activity sicherstellen, dass bevor sie beendet wird (zum Beispiel weil Nutzer sie beendet) das Callback vom Service entfernt wird?
Solang der Service an die Activity gebunden ist, kein Problem. Einfach in onDestroy() service.removeCallback(..) aufrufen.
Wenn der Service allerdings nicht gebunden ist, muss zunächst erst wieder eine Verbindung hergestellt werden. Und erst dann (nach onServiceConnected) kann das Callback entfernt werden...
Alles in onDestroy aufzurufen geht allerdings nicht, da das Binden asynchron ist... innerhalb von onDestroy müsste also gewartet werden, bis die Verbindung steht, dann callback entfernen, dann kann die Activity korrekt beendet werden.

Der Service beendet sich übrigens selbst, sobald keine callbacks mehr registriert sind und keine activity mehr gebunden sind.

Habe auch mit dem "onCallbackDied" geliebäugelt, das wird allerdings nur aufgerufen wenn eine activity unerwartet beendet wird (abstürzt) und nicht wenn sie regulär beendet wird.

Jemand eine Idee?
 

Ähnliche Themen

Jansenwilson
Antworten
1
Aufrufe
675
Mazuch
Mazuch
M
  • maksimilian
Antworten
15
Aufrufe
1.648
maksimilian
M
M
Antworten
8
Aufrufe
945
deek
D
Zurück
Oben Unten