2016-07-12 17 views

Antwort

0

Wenn Konfigurationsänderungen vorgenommen werden, z. B. Geräteausrichtung, wird die Aktivität zerstört und neu erstellt, es sei denn, Sie haben diesen Prozess in der Manifestdatei geändert. Wie @Lazai bereits erwähnt hat, müssen Sie, wenn Sie die Funktion zur Änderung der Aktivitätskonfiguration ändern, alle neuen Ressourcen manuell laden, die für die neue Ausrichtung erforderlich sind. Dazu gehören Styles, Designs, Zeichen und Layouts innerhalb des Callbacks Activity.onConfigurationChanged(Configuration newConfig).

Hinweis: Wenn Sie nicht innerhalb der Manifestdatei angeben, dass Sie Konfigurationsänderungen manuell vornehmen möchten, erhalten Sie nie einen Anruf anActivity.onConfigurationChanged(Configuration newConfig).

Android exports recommend not handling the configuration changes yourself and letting the OS handle itself. Wie kann man wissen, wenn Orientierungsänderungen stattfinden, wenn Sie keine Aufrufe von onConfigurationChanged (Configuration newConfig) erhalten? Nun, wenn Sie über API Level 11 Targeting sind, ist ihre eine praktische Methode für die Activity Klasse, die angibt, ob die Aktivität eine Änderung der Konfiguration auftritt, genannt Activity.isChangingConfigurations(). Diese Methode gibt immer den Wert false zurück, bis sich die Aktivität auf die Zerstörung vorbereitet. Es wird vor dem Aufruf Activity.onPause() einen gültigen Wert haben, mit dem Sie überprüfen und feststellen können, ob sich Ihr Gerät dreht und Ihre App einige spezielle Optimierungen oder Statusspeicherverfahren durchführen sollte.

Ich empfehle persönlich, dass das System die Konfiguration ändern und prüfen, ob sich die Ausrichtung ändert, denn in einer großen App oder komplexen Aktivität kann es sehr mühsam sein, die notwendigen Ressourcen und Assets neu zu laden, nur um zu verhindern, dass eine Aktivität einfach verworfen wird Objekt oder während Rotationen.

-1

im Fragment Überschreibung onconfigurationchanged Methode

@Override 
public void onConfigurationChanged(Configuration newConfig) 
{ 
    super.onConfigurationChanged(newConfig); 

    // reload your views here 
} 
0

Wenn Orientierung alle Fragmente von Änderungen und Aktivitäten zerstört werden, und die Ansichten wieder neu erstellt werden; wenn Sie die Konfigurationseinstellungen ändern:

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

hier der Schlüssel Also im Grunde ist OnStop() und onDestroy(), sollten Sie die Zustände Ihrer Aufgaben speichern, wenn in der OnStop() -Methode (oder sogar onPause() Dreh) um sie beim Laden der Ansichten erneut zu starten (onResume()).

Sehen Sie hier mehr link

0

Wenn Aktivitäten und Fragmente drehen, werden sie zerstört (mit onDestroy()) dann werden sie durch den gleichen Lebenszyklus gehen, wie sie erstellt wurden.