Назад к вопросам
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.