Как узнавать об изменении ориентации экрана android

Нужно узнавать именно об изменении и если она была изменена выполнять метод. Пытался гуглить, но нашел лишь вариант для узнавания текущей ориентации, что не подходит, кстати это мне помогло Ориентация экрана и AsynTask Android и я тоже использую AsyncTask, но теперь у меня не переключается на landscape версию xml активности.


Ответы (1 шт):

Автор решения: Sergei Buvaka

Есть несколько вариантов:

В вашем манифесте:

<activity android:name=".HelloAndroid"
    android:label="@string/app_name"
    android:configChanges="orientation">

В вашей активити переопределите onConfigurationChanged:

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

    int newOrientation = newConfig.orientation; 
}
  • Как добавил Circassian есть еще такой вариант:

Текущая конфигурация, используемая для определения того, какие ресурсы получить, доступна из объекта Configuration:

getResources().getConfiguration().orientation;

Вы можете проверить ориентацию, посмотрев на ее значение:

int orientation = getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
    // Горизонтальная
} else {
    // Портретная
}
→ Ссылка