Sobes.tech
Back to questions
Junior — Middle
68

Каким образом обеспечивается сохранение данных при изменении ориентации экрана в мобильных приложениях?

Answer from AI

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")
    }
}