Назад к вопросам
Junior — Middle
69
Каким образом обеспечивается сохранение данных при изменении ориентации экрана в мобильных приложениях?
Ответ от нейросети
sobes.tech AI
При изменении ориентации экрана в Android происходит пересоздание Activity, что приводит к потере текущего состояния. Для сохранения данных применяются следующие методы:
- onSaveInstanceState(Bundle outState) — метод, в котором можно сохранить необходимые данные в объект Bundle перед уничтожением Activity.
- onRestoreInstanceState(Bundle savedInstanceState) или получение данных из savedInstanceState в onCreate для восстановления состояния.
- Использование ViewModel из архитектурных компонентов Android, который сохраняет данные при пересоздании Activity.
- Сохранение данных в Persistent Storage (например, SharedPreferences или базу данных) для долгосрочного хранения.
Пример сохранения состояния счётчика:
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("counter", currentCounter)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (savedInstanceState != null) {
currentCounter = savedInstanceState.getInt("counter")
}
}