Ответ
Флаг configChanges в манифесте позволяет Activity самостоятельно обрабатывать изменения конфигурации (поворот экрана, изменение языка и т.д.), предотвращая пересоздание.
Основные варианты:
android:configChanges="orientation|screenSize|keyboardHidden"
Плюсы:
- Улучшает производительность (избегаем пересоздания)
- Контроль над поведением при изменениях
Минусы:
- Нужно вручную обрабатывать изменения в
onConfigurationChanged() - Легко упустить важные изменения (например, локализация)
Пример:
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
// Обновляем UI для ландшафта
}
}
Используйте осторожно, только когда действительно нужно сохранить состояние!