Frage

  • Ich habe eine Android-Aktivität, die wiederum einen Thread startet.
  • Im Thread eröffne ich eine persistente TCP-Socket-Verbindung.
  • Wenn die Buchse eine Verbindung zum Server dynamische Daten heruntergeladen werden.
  • Der Thread sendet Nachrichten mit Handler-Klasse, um die Aktivität, wenn Daten empfangen wurden.

Nun, wenn der Benutzer Wechsel von Portrait passiert mit Landscape-Modus wird die Aktivität eines onDestroy Anruf. In diesem Moment schließe ich die Steckdose und den Faden zu stoppen.

Wenn Android hat Landscape-Modus geschaltet nennt es onCreate noch einmal, und ich habe eine Buchse wieder anschließen zu tun. Auch alle Daten die Aktivität Bedürfnisse empfangen werden erneut heruntergeladen, da der Server nicht die Fähigkeit haben, zu wissen, was vor ausgesendet worden ist, das heißt, es gibt keine „Lebenslauf“ -Funktion.

So das Problem ist, dass es eine Menge von Daten, die die ganze Zeit erneut gesendet wird, wenn Landscape-Modus geändert wird.

Was sind hier meine Optionen?

  • Sollte ich einen Dienst erstellen, die den Sockel Traffic auf dem Server übernimmt somit immer ich alle Daten einsehen, die der Server in den Dienst gesendet hat.
  • Oder sollte ich deaktivieren Landscape-Modus alle zusammen vielleicht?
  • Oder wäre meine beste Wette meinen Server neu zu schreiben, die eine sehr große Aufgabe ist es: -)

Alle Eingaben sind willkommen: -)

/ Henrik

War es hilfreich?

Lösung

So oder verhindern, dass Ihre Aktivität von neu gestartet werden ( Aktivität Neustart bei Rotation Android ) oder implementieren einen Service, der Ihre Anwendung verwaltet. Die Service-Methode ist sehr beliebt bei Anwendungen, die ich gesehen habe, und ermöglicht es Ihnen, eine gewisse Flexibilität, wenn auf die Verbindung zu reißen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top