2010-12-06 8 views
4

Wenn meine Hauptaktivität nach dem Begrüßungsbildschirm startet, werden 4 große XML-Dateien analysiert. Dies dauert ein paar Sekunden und ich kann dies in der Zeit verbergen, die der Begrüßungsbildschirm beim Start anzeigt.Die Aktivität wird neu geladen, wenn sich die Ausrichtung in Android ändert.

Aber wenn sich die Bildschirmausrichtung ändert oder wenn ich nach einer Unteraktivität zurück zur Hauptaktivität gehe, parst es erneut und somit bleibt meine App für ein paar Sekunden hängen und antwortet in dieser Zeit nicht .

Ich verstehe, das ist normales Verhalten in Android, aber gibt es keine Möglichkeit, dies zu vermeiden?

las ich etwas über savedinstancestate, aber ich kann nicht die Dokumentation zu verstehen scheinen ..

Antwort

12

Fügen Sie diesen Code in Ihre Android-Manifestdatei in jedem Aktivitätsknoten ein, wenn Sie API-Stufe 12 oder weniger verwenden.

android:configChanges="orientation|keyboardHidden" 

Für 13 Level und weiter Sie müssen auch

android:configChanges="orientation|keyboardHidden|screenSize" 

jetzt fügen Sie diesen Code in Ihre jede Aktivität des Java-Klassen "Bildschirmgröße", d.h .: umfassen.

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

    // Checks the orientation of the screen 
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); 
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
     Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); 
    } 
    // Checks whether a hardware keyboard is available 
    if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) { 
     Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show(); 
    } else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) { 
     Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show(); 
    } 
} 
+0

Vielen Dank! Das funktioniert :) – Galip

3

Sie können dies verhindern, indem Sie android: configChanges = "orientation" zu Ihrer Aktivität in der AndroidManifest-Datei hinzufügen.

Verwandte Themen