Каким образом обеспечивать сохранение текущего состояния системы при изменении конфигурации?
Ответ от нейросети
sobes.tech AI
В Android для сохранения текущего состояния системы при изменении конфигурации (например, поворот экрана) используется механизм сохранения состояния Activity или Fragment.
Основные способы:
-
onSaveInstanceState(Bundle outState) — метод, в котором можно сохранить необходимые данные в объект Bundle. Эти данные будут доступны при пересоздании Activity в методе onCreate или onRestoreInstanceState.
-
ViewModel — компонент из архитектурных компонентов Android, который сохраняет данные при изменении конфигурации и не пересоздаётся вместе с Activity.
-
Сохранение состояния UI-компонентов — многие стандартные виджеты сами сохраняют своё состояние, если у них установлен уникальный идентификатор.
Пример сохранения состояния счётчика:
class MainActivity : AppCompatActivity() {
private var counter = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
counter = savedInstanceState?.getInt("counter_key") ?: 0
// обновить UI с текущим значением counter
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("counter_key", counter)
}
}
Таким образом, при изменении конфигурации данные не потеряются, и пользователь увидит тот же интерфейс и состояние.