Die Android-Anwendung wird bei der Änderung der Ausrichtung neu gestartet

7

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 ..

    
sachin 02.11.2010, 07:00
quelle

5 Antworten

10

wenn Ihr Android: targetSdkVersion="12" oder weniger

android: configChanges="Orientierung | keyboardHidden" & gt;

wenn Ihr Android: targetSdkVersion="13" oder mehr

android: configChanges="Ausrichtung | keyboardHidden | screenSize" & gt;

    
Mohit 26.07.2013 18:20
quelle
9

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: Ссылка

    
SteD 02.11.2010 07:10
quelle
1

So soll es funktionieren. Es gibt eine Möglichkeit, dies nicht zu tun, aber Sie sollten den Lebenszyklus verfolgen und in der Lage sein, Aktivitäten ordnungsgemäß zu starten. Dies wurde hier schon oft gefragt.

    
Falmarri 02.11.2010 07:10
quelle
1

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.

    
Vuk 02.11.2010 07:37
quelle
1

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.

Ссылка

    
dustmachine 04.03.2012 20:10
quelle

Tags und Links