So vermeiden Sie einen Neustart der Aktivität, wenn sich die Ausrichtung auf Android ändert
Lesezeit: 2 Minuten
chirag
Ich erstelle eine Android-App, in der ich eine Ansicht auf eine Leinwand zeichne. Wenn sich die Ausrichtung des Geräts ändert, wird die Aktivität neu gestartet. Ich will es nicht.
Wie kann ich vermeiden, die Aktivität neu zu starten, wenn sich die Ausrichtung ändert?
Mike
Es gibt verschiedene Möglichkeiten, dies zu tun, aber wie hier angegeben, mit
ermöglicht es Ihnen, auf die Konfigurationsänderungen zu hören. Auf diese Änderungen reagieren Sie dann durch Überschreiben onConfigurationChanged und anrufen setContentView.
So habe ich es gemacht, aber ich wäre daran interessiert, die Gedanken anderer Leute zu erfahren.
In meinem Fall sollte ich setContentView nicht verwenden und onConfigurationChanged sollte leer sein und nur das Super aufrufen.
– MDP
15. Januar 2016 um 20:00 Uhr
Definieren Sie Ihre Aktivität in der AndroidManifest.xml wie folgt:
Das ist irreführend. Die android:screenOrientation="portrait" erzwingt jederzeit eine Hochformat-Bildschirmausrichtung. Fügen Sie diese Zeile nicht ein.
– Daniel C Jacobs
24. September 2021 um 15:30 Uhr
Ninjasinn
Überprüfen Sie Ihre Android-Manifestdatei, die Sie geschrieben haben android:configChanges="orientation" auf die Aktivität..
Beachten Sie, dass dies größtenteils nicht das ist, was Sie tun möchten. Für die meisten Apps besteht der richtige Ansatz darin, Ihre Konfiguration in onSaveInstanceState() aufzuschreiben und nach der Konfigurationsänderung wiederherzustellen.
– jjb
31. Dezember 2010 um 6:38 Uhr
danke. aber ich zeichne ein diagramm auf der leinwand onclick event of button, also wie kann ich den zustand der leinwand speichern.
– chirag
31. Dezember 2010 um 7:29 Uhr
Oubaida AlQuran
Ich habe versucht zu schreiben android:configChanges="keyboardHidden|orientation|screenSize" im Aktivitäts-Tag, funktioniert aber nicht.
Ich habe viele Methoden ausprobiert, aber nichts funktioniert, bis ich hinzugefügt habe android:configChanges="keyboardHidden|orientation|screenSize" zum alle App-Aktivitäten und es funktioniert perfekt.
Ich würde die Verwendung von Fragmenten empfehlen. Sie können einfach verwenden setRetainInstance(true) um zu benachrichtigen, dass Sie Ihr Fragment behalten möchten.
Dies verhindert jedoch nicht, dass die Host-Aktivität und die Fragmentansichten zerstört werden
– Ludwig CAD
13. Dezember 2017 um 19:38 Uhr
Asad Ali Choudhry
Zum xamarin Benutzer,
Fügen Sie dies hinzu, um den Neustart der Anwendung bei einer Ausrichtungsänderung in Android zu vermeiden