Frage

Ich schreibe eine Tätigkeit, dass lädt Daten von einem Server und zeigt sie als eine Liste mit ArrayAdapter. Für, dass ich einen Fortschrittsdialog heißt Laden zeigt, während er alle Daten vom Server lädt. Dann habe ich den Dialog in einem Handler entlassen. Mein Problem ist, dass, wenn immer ich die Ausrichtung ändern, der Fortschrittsdialog wieder gezeigt, die nicht benötigt wird, da alle Daten bereits angezeigt wird?

War es hilfreich?

Lösung

Ich würde sagen, haben Sie zwei Möglichkeiten:
Entweder Sie Ihre Aktivität zwingen, nicht zu ändern Orientierung zu:

<activity android:name="MainActivity" android:configChanges="keyboardHidden|orientation"> 

in Ihrem Manifest ( Dokumentation ), die erzählen das System, dass Sie Griff Orientierung wollen Änderungen von sich selbst, und in diesem Fall werden Sie nichts tun. Aber Sie lieber etwas Code in onPause() und onSaveInstanceState() hinzufügen, da diese Aktivität könnte durch Android unterbrochen werden, wenn Sie einen Anruf zum Beispiel erhalten. Sie müssen also einige Ersparnisse behandeln.

Oder wählen Sie die Anzeige des Dialogs zu verhindern, wenn bereits angezeigt wurde, oder wenn der Hintergrund-Thread ausgeführt wird. Dies ist einfach zu bedienen Sie ein AsyncTask für Ihren Download-Teil, weil Sie verwenden können, AsyncTask.getStatus zurückkehren, die Sie der Status die Aufgabe . Wenn es bereits in fertigem Zustand ist, müssen Sie den Dialog abzubrechen.

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