Android In Service überprüfen ob eine Activity gebunden ist?

Stroker89

Bekanntes Mitglied
Hallo ich habe ein kleines Problem mit meinem BroadcastReceiver.

Activity 1 sendet einen Broadcast zu einem Service. Der sendet über einen Thread eine Nachricht an den Server. Server seendet Response zum Thread, dann wieder zum Service zurück.
Der Service soll jetzt den Response per Broadcast zu Activity 2 schicken.

Das Problem besteht jetzt darin, dass ich nicht weiß ob Activity 2 überhaupt schon existiert. Es wäre natürlich sehr blöd wenn der Response vom Service ins Nirvana geht.

Wäre dankbar für ein paar Tipps.


Gruß Martin
 
Es gibt Sticky Broadcasts, allerdings habe ich mit denen sehr schlechte Erfahrungen gemacht und ich glaube auch, dass in der Android Dokumentation steht, das man diese nicht nutzen sollte.+

Du könntest dir im Service merken, ob sich eine Activity zu dir "verbunden hat". Das geht zB. in onBind(), dann musst du aber in der Activity auch bindService aufrufen.
 
Es ist ein LocalService und ich benutze in jeder Activity bindService().
Das onBind() funktioniert leider nur bei der ersten Activity...
Bei jeder weiteren wird diese Methode leider nicht mehr aufgerufen.

Gruß
 
Okay, dass wusste ich nicht. Das ist natürlich etwas blöd.

Das einzige was mir jetzt einfallen würde, ist wenn du dir das selber ein wenig nachbaust. Also über den IBinder mit dem Service kommunizierst und dann so eine Funktion wie addActivity aufrufst. Dann weiß der Service, das diese Activity über Neuigkeiten benachrichtigt werden will.

Vielleicht hat aber schlingel auch noch eine bessere Idee 😀
 
Ich habe eh schon so ein kleines System gebaut, dass der Service weiß von welcher Activity der Broadcast war und wer den passenden Response bekommen soll. Nur ist es halt echt doof, da ich halt nicht garantieren kann, dass die Activity schon existiert, da der Socketthread ja nie gleich schnell läuft...
 
Ich habe eh schon so ein kleines System gebaut, dass der Service weiß von welcher Activity der Broadcast war und wer den passenden Response bekommen soll. Nur ist es halt echt doof, da ich halt nicht garantieren kann, dass die Activity schon existiert, da der Socketthread ja nie gleich schnell läuft...

Ja richtig, aber dann hat sich die Activity ja auch noch nicht angemeldet. Dann musst du die Nachrichten zwischenspeichern und dann schicken, wenn die Activity sich angemeldet hat.
 

Zurück
Oben