Ich versuche, eine Android-App zu refactor/redesign. Derzeit habe ich eine UI-Aktivität (Activity 1
), die eine DataThread
erstellt. Dieser Thread ist für die Netzwerk-E/A verantwortlich und interagiert (stellt Daten zur Verfügung) mit der UI-Aktivität über eine handler
.Android Service interagiert mit mehreren Aktivitäten
Jetzt möchte ich eine weitere Aktivität hinzufügen (eine neue Benutzeroberfläche mit Video) - Activity 2
. Activity 1
ist immer noch die Haupttätigkeit. Activity 2
wird aufgerufen, wenn der Benutzer auf eine Schaltfläche unter Activity 1
klickt. Activity 2
's Daten kommt auch von der DataThread
.
Meine Idee ist es, die Logik meines DataThread
in einem Android Service
(DataService
) zu setzen. Meine Frage ist - kann mehr als auf Aktivität gleichzeitig an meine DataService
binden? Gibt es eine Möglichkeit, dem Dienst mitzuteilen, dass er nur Daten für eine bestimmte Aktivität bereitstellen soll?
Andere Ideen sind willkommen?
Vielen Dank im Voraus.
Ich suche nach einer Lösung wie dieser, gibt es ein funktionierendes Beispiel oder einen Link, um mehr Details über diese Implementierung zu erhalten, thx – Sam
@Rich Wie schaffen Sie es sauber zu lösen vom Dienst, wenn Ihre Anwendung beendet wird, wenn Sie es gebunden haben in Ihrer Anwendungsklasse? Da Application # onTerminate() nie auf Produktionsgeräten aufgerufen wird, siehe JavaDoc http://developer.android.com/reference/android/app/Application.html –
@SvenJacobs Die einzige Möglichkeit, die ich mir vorstellen kann: Lassen Sie den Service rufen ' stopSelf() 'nach einiger Zeit, wenn alle Aktivitäten pausiert sind. Aktivitäten müssen dem Dienst in diesem Fall ihren Status mitteilen, wenn sie pausiert werden. Aktivitäten rufen niemals 'unbindService()' auf, und der Dienst wird für jede onResume() jeder Aktivität an den 'applicationContext' gebunden. – OneWorld