2016-07-25 17 views
0

Ich versuche, Android-App zu erstellen, die mehrere Aktivitäten und einen Socket für alle von ihnen verwenden wird. Ich habe verstanden, dass ich Service verwenden sollte, die Socket enthalten wird, der mit dem Server verbunden wird. Jede Activity wird einige bestimmte Anforderungen an den Server verwenden (z. B. erste Aktivität kann Benutzer laden und zweitens können sie Nachrichten senden). Also, wie kann ich die Antworten vom Server zwischen Aktivitäten navigieren (z. B. Liste der Benutzer werden an die erste Activity übergeben, und Nachrichten werden auf die zweite Activity geladen werden)?Übergeben Sie verschiedene Antworten vom Server in verschiedenen Aktivitäten

Antwort

2

Wie Sie sagen, Sie verwenden Service zum Laden von Daten vom Server, nachdem die Daten bekommen Sie Antwort Griff nach Art der Reaktion ab, die Sie LocalBroadcast Feuer und erhalten, dass in der Aktivität mit dynamischer BroadcastReceiver

Siehe Anleitung für LocalBrodcast

+0

Danke, ich werde diese Lösung überprüfen, aber ich möchte dies verdeutlichen: also werde ich Socket im Dienst speichern welches mit der Instanz der Anwendung verknüpft wird. Alle Aktivitäten werden Aufruf-Methode in der Anwendung sein, die den Dienst zurückgibt. Aber was passiert, wenn meine Aktivität den Dienst anfordert, bevor er gebunden wird? Wie kann ich das verhindern? Und vielleicht können Sie etwas besser beraten, dieses Ding zu tun? –

+0

Aber was passiert, wenn meine Aktivität den Dienst anfordert, bevor er gebunden wird? Ich verstehe nicht, was genau du sagen willst? –

+0

Ich meinte, wenn meine Aktivität versucht, Methoden in Dienst zu rufen, bevor der Dienst gebunden wird. Z.B. Ich starte die App, nachdem die Anwendung und die Anwendung gestartet wird, in Application :: onCreate() habe ich bindService(), in Activity :: onCreate() habe ich 'service = ((AppCore) this.getApplication()). GetService(); 'aber wenn der Dienst immer noch nicht gebunden ist, werde ich in 'Dienst' null erhalten. –

0

Ihr Dienst kann ein Router für Ihre Aktivitäten sein. Durch spezifische Antwort (Zuordnung zu switch-case-ids) wird die entsprechende Aktivität gestartet. Eine gestartete Aktivität kann zum Chatten an den Dienst gebunden werden.

+0

Und wenn die Instanz der Aktivität bereits existiert? –

+0

Spiel mit Absichtsflaggen ex. [FLAG_ACTIVITY_REORDER_TO_FRONT] (https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT) –