2010-11-23 15 views
1

Ich habe einen Dienst, der eine Verbindung zu einem Server (regulären TCP-Socket) und empfängt Datenaktualisierungen in einem Thread. Ich möchte diese Daten (nach ein wenig Verarbeitung) in einem Modell speichern, auf das mehrere Aktivitäten zugreifen können (typischerweise ListView mit benutzerdefinierten ArrayAdaptern). Bei den Aktivitäten, die ich verwende, binde ich eine Handle für den Dienst, damit er auf das Modell zugreifen und sich als Listener registrieren kann, um Benachrichtigungen zu erhalten, wenn sich das Modell ändert.Howto in Android: Modell innerhalb Service, Zugriff durch mehrere Aktivitäten

Das Problem ist, dass der Zugriff auf das Modell Thread-sicher sein muss. Zuerst dachte ich, ich würde runOnUIThread mit den eingehenden Daten innerhalb des Dienstes aufrufen, um das Modell zu aktualisieren, aber der Dienst hat diese Routine nicht. Gibt es eine andere Möglichkeit, das Modell im Service vom UI-Thread aus zu aktualisieren? Oder gibt es eine bessere Architektur/Muster, die ich verwenden sollte?

Antwort

0

Keine Antwort, aber das ist, was ich am Ende: Jeder on ... Aufruf (zB onCreate, onBind etc) werden auf UI-Thread ausgeführt, so dass ich am Ende einen Handler in onCreate erstellen und an diesen Handler zu senden Aktualisieren Sie mein Modell im UI-Thread.

Verwandte Themen