Ответ
Изменения конфигурации происходят при событиях, требующих пересоздания Activity/Fragment. Основные триггеры:
- Смена ориентации экрана
- Изменение языка/локали
- Подключение физической клавиатуры
- Изменение размера окна (multi-window режим)
- Изменение темы (dark/light mode)
Для сохранения данных используйте onSaveInstanceState() или ViewModel:
// ViewModel example
class MyViewModel : ViewModel() {
val data = MutableLiveData<String>()
}
// In Activity
private val viewModel by viewModels<MyViewModel>()
Для ручного управления конфигурацией добавьте в манифест:
android:configChanges="orientation|screenSize" (но это антипаттерн в большинстве случаев)