2012-03-26 15 views
1

Ich habe derzeit eine App, die Verbindung zu einem Server in mehreren Aktivitäten erfordert. Ich versuche derzeit, eine Klasse zu erstellen, die die Verbindung zwischen mehreren Aktivitäten behandelt und Getter bereitstellt, um die Ausgabeströme zu erhalten. Ich habe eine Serviceklasse betrachtet, muss aber die Verbindung nicht aufrechterhalten, wenn die App nicht ausgeführt wird.Android Networking Class

Ich bin mir nicht ganz sicher, was ich tun muss, um zu erreichen, dass ein Objekt global aus mehreren Aktivitäten aufgerufen wird, ohne dass das Objekt in jeder Aktivität instanziiert werden muss.

Antwort

0

Ein Service ist immer noch die beste Idee. Sie müssen nur den Überblick darüber behalten, wie viele Anwendungen mit ihm verbunden sind (in onBind/onStartCommand/onUnbind) und es herunterfahren lassen, wenn es auf Null geht.

Was ein bisschen schwierig ist, ist, dass Anwendungen in Android nicht wirklich geschlossen sind, wenn sie keinen Fokus haben: Sie müssten entscheiden, ob eine Anwendung vom Dienst bei onPause oder onStop entbindet.

+0

Es gibt ein Problem - Ihr Dienst wird bei der ersten Aktivität onStop gestoppt. Worüber Sie jedoch sprechen, ist in begrenztem Service implementiert) –

0

Sie haben zwei Möglichkeiten:

  1. eine Singleton-Klasse machen. (Ich wette, es gibt viele Beispiele in Google.)

  2. Implementieren Sie eine "Anwendung" -Klasse. http://developer.android.com/reference/android/app/Application.html

Die Unterschiede:

  1. Für (1) Es wird das erste Mal, wenn Sie darauf zugreifen instanziiert. (Aber abhängig vom Design). Für (2) wird es zusammen mit dem App-Prozess instanziiert.

  2. Für (1) ist es komplexer, den Objektlebenszyklus zu behandeln. Für (2) können Sie den Lebenszyklus Ihrer Objekte einfach verwalten, indem Sie den Zugriff auf das Objekt in der Anwendung steuern.