Sobes.tech
Назад к вопросам
Junior — Middle
71

Какие методы используются для обработки изменения ориентации экрана в Activity?

Ответ от нейросети

sobes.tech AI

При изменении ориентации экрана в Android Activity по умолчанию пересоздаётся, вызывая методы жизненного цикла заново. Для обработки этого изменения можно использовать следующие методы:

  • onSaveInstanceState(Bundle outState): сохраняет состояние перед пересозданием Activity.
  • onRestoreInstanceState(Bundle savedInstanceState): восстанавливает состояние после пересоздания.
  • onConfigurationChanged(Configuration newConfig): вызывается при изменении конфигурации, если в манифесте указано, что Activity самостоятельно обрабатывает изменения ориентации (через android:configChanges="orientation|screenSize").

Пример обработки изменения ориентации без пересоздания Activity:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        // Действия при ландшафтной ориентации
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        // Действия при портретной ориентации
    }
}

Однако рекомендуется использовать сохранение и восстановление состояния, чтобы корректно обрабатывать пересоздание Activity.