При изменении конфигурации (например, поворот экрана), Android уничтожает и воссоздает активность. Состояние представления сохраняется автоматически, если у него установлен ID.
Механизмы сохранения состояния представления:
Автоматическое сохранение: Android запоминает определенные свойства виджетов с ID (например, текст в TextView, checked состояние в CheckBox).
Programmatic Save/Restore: Можно вручную сохранять и восстанавливать состояние, переопределяя методы:
kotlin
kotlin
Внутри представления (классы, унаследованные от View):
kotlin
kotlin
Сохранение через ViewModel: Рекомендуемый способ для сохранения данных, не связанных напрямую с UI. ViewModel переживает изменения конфигурации.
Сохранение через SavedStateHandle в ViewModel: Позволяет сохранять и восстанавливать небольшие объемы данных в ViewModel автоматически, используя те же механизмы, что и onSaveInstanceState.
kotlin
LocalViewStateManager: (Не является стандартным API, может быть кастомной реализацией) Для более сложного управления состоянием внутри представления.В целом, автоматическое сохранение по ID справляется с базовыми случаями. Для сохранения более сложного состояния и бизнес-логики используются ViewModel с SavedStateHandle или ручное переопределение методов сохранения/восстановления.