Android Kommunikation zwischen UI -> Service -> Thread

Stroker89

Bekanntes Mitglied
Hallo Leute,

habe ein Problem mit der Kommunikation bzw. dem Senden von Nachrichten/Daten zwischen UI-Thread -> Service -> Thread

Folgendes Szenario,

In der UI ist ein EditText und ein Button. Beim Starten der UI wird ein Service gestartet, der wiederrum einen Thread für eine Socketverbindung aufmacht und offen lässt solang die App nicht destroyed wird. Soweit so gut.

Kommunikation zwischen Service - Thread findet mittels eines Handler statt. Der Service Broadcastet dann zu der UI das Ergebnis zurück.

Jetzt stellt sich mir aber die Frage wie ich Daten (EditText) zu dem Service bekomme um so die Daten über den Socketthread zu meinem Server zu schicken und das jedes mal wenn mein Button in der UI gedrückt wird.
Auf den Handler des Services hab ich ja von der UI keinen Zugriff soweit ich das mitbekommen habe.

Kann mir jemand eventuell auf die Sprünge helfen?

Gruß Martin
 
Du hast zwei Möglichkeiten mit dem Service zu kommunizieren:
1. Du bindest dich an den Service. Ist dann so ähnlich wie Remoting.
2. Du registrierst beim Service einen Broadcast-Receiver und schickst deine Requests aus der Activity per BroadcastIntent an den Service.

Ich mag die 2. Möglichkeit lieber, da mir die erste zu umständlich und zu träge ist.
 
Danke für deinen super Tipp. Habe es jetzt so gelöst, dass ich jeweils einen BroadcastReceiver in der Activity und dem Service registriert habe und im Service einen Handler habe und einen Handler in dem aufgerufenen Thread.

Die Kommunikation klappt tadellos.

UI -> Service ->Thread ->Server

UI<- Service<- Thread<- Server

Gruß Martin
 
Wenn dann würde ich hier aber den LocalBroadcastManager benutzen. Warum solltest du eine Nachricht durchs ganze Android System schicken, wenn nur deine App Sie braucht?

Vielleicht willst du ja auch gar nicht, dass andere Apps (rein theoretisch) auch diese Nachrichten empfangen könnten.
 

Zurück
Oben