Sobes.tech
Junior — Middle

Как се осигурява запазването на данните при промяна на ориентацията на екрана в мобилните приложения?

sobes.tech AI

Отговор от AI

При промяна на ориентацията на екрана в Android, активността се пресъздава, което води до загуба на текущото състояние. За запазване на данните се използват следните методи:

  • onSaveInstanceState(Bundle outState) — метод, в който можете да запазите необходимите данни в обект Bundle преди унищожаването на активността.
  • onRestoreInstanceState(Bundle savedInstanceState) или получаване на данни от savedInstanceState в onCreate за възстановяване на състоянието.
  • Използване на ViewModel от архитектурните компоненти на Android, който запазва данните при пресъздаване на активността.
  • Запазване на данните в 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")
    }
}