5 Stimmen

Die Methode Onstop wird aufgerufen, wenn sich die Ausrichtung ändert

Wenn ich die Ausrichtung der Android-Anwendung ändere, ruft sie die onStop-Methode auf und dann onCreate. Wie kann verhindert werden, dass onStop und onCreate aufgerufen werden, wenn sich die Ausrichtung ändert?

8voto

Karri Rasinmäki Punkte 919

Es ist schon lange her, seit diese Frage aktiv war, aber ich muss sie immer noch beantworten. Ich hatte dasselbe Problem und fand eine Lösung.

Im Manifest sollten Sie android:configChanges=orientation|screenLayout|layoutDirection|screenSize zu Ihrer Aktivität hinzufügen, damit standardmäßige Aktionen bei einer Änderung der Ausrichtung nicht aufgerufen werden.

...

`

Und in Ihrer Aktivität:

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
    // Dies überschreibt die Standardaktion
}

Ursprüngliches Beispiel:
http://android-er.blogspot.fi/2011/05/prevent-activity-restart-when-screen.html

`

3 Stimmen

Ich musste auch "|screenSize" hinzufügen für neuere Betriebssysteme.

0 Stimmen

Ja, füge grundsätzlich alle Parameter hinzu, die mit der Orientierungsänderung in Verbindung stehen oder durch sie verursacht werden könnten.

1 Stimmen

Editierte Antwort, damit "screenSize" auch in der Parameterliste steht.

2voto

sdabet Punkte 17841

Dies ist das Standardverhalten: Die Aktivität wird neu erstellt, wenn sich die Ausrichtung ändert. Aber du kannst entscheiden, dieses Ereignis zu ignorieren. Weitere Details findest du hier: Wie kann man eine Anwendung dazu bringen, Änderungen der Bildschirmausrichtung komplett zu ignorieren?

1 Stimmen

Nun gut, die Technik im verlinkten Artikel verhindert anscheinend Orientierungsänderungen, jedoch nicht die Aufrufe der Rückrufe, wenn sich die Orientierung ändert (was gefragt wurde).

0voto

Heiko Rupp Punkte 29262

Sie können das nicht vermeiden, das sind Systemrückrufe. Sie können jedoch den Zustand in onStop speichern und dann das System dazu bringen, ihn schneller in onCreate wiederherzustellen, nachdem sich die Bildschirmorientierung geändert hat.

Sehen Sie auch dieser und jener Artikel auf den Entwicklerseiten.

1 Stimmen

Dies kann vermieden werden, indem android:configChanges="orientation|keyboardHidden" aufgerufen wird. Aber es gibt immer noch einige Probleme.

0 Stimmen

Nun, dies verhindert offenbar Änderungen der Ausrichtung, jedoch nicht die Aufrufe an die Rückruffunktionen, wenn sich die Ausrichtung ändert (was gefragt wurde).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X