Обработка операций, вращающихся в Android

Мне нужно применить разные макеты для портретной и альбомной ориентации моей деятельности. Кроме того, мне нужно показать предупреждение, если ориентация - портретная.

Я указал андроид: configChanges = "direction | keyboardHidden" в AndroidManifest. Я также переопределяю метод onConfigurationChanged следующим образом:

@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);

    ....
}

При повороте журнала с альбомной на портретную выглядит так:

config changed
Portrait

Но при переходе с портретной на альбомную ориентацию это выглядит как

config changed
Portrait
config changed
Landscape

Почему onConfigurationChanged вызывается дважды? Как я могу этого избежать?

5
задан darja 25 September 2010 в 14:50
поделиться