Wenn ich die Orientierungsanwendung ändere, starte ich neu und habe meine aktuellen Daten verloren. Ich verwende eine Aktivitätsgruppe, die viele Aktivitäten enthält, wenn ich die Orientierungsanwendung von der Hauptaktivität neu starte.
ist es möglich, diesen Neustart der Anwendung bei einer Orientierungsänderung zu vermeiden?
Jeder weiß, bitte lass es mich wissen ..
Android startet die Aktivitäten immer dann neu, wenn sich die Ausrichtung standardmäßig ändert.
Sie müssen Ihre Daten / Ihren Status speichern, indem Sie onSaveInstanceState()
aufrufen, bevor Android die Aktivitäten zerstört.
Schauen Sie hier nach: Umgang mit Laufzeitänderungen
Diese SO-Frage erweist sich auch als gute Lektüre, um zu verstehen, wie Sie es könnten damit umgehen.
Sie können dies verhindern, indem Sie android:configChanges="orientation"
zu Ihrer Aktivität in der AndroidManifest-Datei hinzufügen.
Quelle: Ссылка
Sie könnten das System anweisen, die Änderungen mit den folgenden zu ignorieren:
<activity android:name="SomeActivity" android:configChanges="keyboardHidden|orientation">
Aber ich würde vorschlagen, dies nicht zu tun, weil dies oft ein Hinweis auf zugrunde liegende Probleme ist, die noch auftauchen werden.
Mein Rat ist, dass Sie einfach eine neue Klasse hinzufügen, die die Wiederaufnahme aller langen Operationen oder jeglicher Aktivitätsänderungen übernimmt.
In der API-Dokumentation gibt es einige gute Informationen darüber, warum die aktuelle Aktivität zerstört und neu aufgebaut wird. Ich fand es sehr aufschlussreich, als ich das letzte Mal an etwas Ähnlichem arbeitete.
Wenn Sie nichts anderes angeben, führt eine Konfigurationsänderung (z. B. eine Änderung der Bildschirmausrichtung [...]) dazu, dass Ihre aktuelle Aktivität zerstört wird und den normalen Aktivitätszyklus von onPause (), onStop () und onDestroy () entsprechend. Wenn die Aktivität im Vordergrund oder für den Benutzer sichtbar war, wird onDestroy () in dieser Instanz aufgerufen, und dann wird eine neue Instanz der Aktivität erstellt. mit was auch immer savedInstanceState Die vorherige Instanz wurde von onSaveInstanceState (Bundle) generiert.
Tags und Links android