Ich muss verschiedene Layouts für Hoch-und Querformat meiner Aktivitäten anwenden. Außerdem muss ich alarmieren, wenn die Ausrichtung Porträt ist.Handhabung Aktivität rotierende in Android
Ich habe android:configChanges="orientation|keyboardHidden"
in AndroidManifest angegeben. I außer Kraft setzen auch onConfigurationChanged Methode wie folgt:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
Log.d("tag", "config changed");
super.onConfigurationChanged(newConfig);
int orientation = newConfig.orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT)
Log.d("tag", "Portrait");
else if (orientation == Configuration.ORIENTATION_LANDSCAPE)
Log.d("tag", "Landscape");
else
Log.w("tag", "other: " + orientation);
....
}
Während von Quer- auf Hochformat log rotierenden wie folgt aussieht:
config changed
Portrait
Aber während von Hoch- auf Querformat zu ändern sieht es aus wie
config changed
Portrait
config changed
Landscape
Warum onConfigurationChanged wird zweimal aufgerufen? Wie kann ich es vermeiden?
Warum onConfigurationChanged() ist ein schlechter Weg? Könnten Sie mir bitte einen Link zur Erklärung geben? Wenn ich onCreate() oder etwas ähnliches verwenden wird, wird die Aktivität neu erstellt und ihre Daten gehen verloren. – darja