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