Нужен savedInstanceState, чтобы временно сохранить UI-состояние, которое:
- важно пользователю (введённый текст, вкладка, скролл)
- и может пропасть при пересоздании
ActivityилиFragment
Аналогия
Представь, что ты играешь в шахматы на доске. Вдруг кто-то стучит в дверь, и ты убираешь доску, но фотографируешь позицию фигур.
Потом возвращаешься, ставишь доску — и восстанавливаешь фигуры по фото.
onSaveInstanceState() — это как сфоткать текущую позицию.savedInstanceState — это снимок доски.onCreate() или onViewStateRestored() — момент, когда ты по снимку восстанавливаешь игру.
Где и как используется?
1. Activity:
onSaveInstanceState(Bundle outState)— вызывается перед уничтожениемActivityсистемой (например, при повороте экрана)onCreate(Bundle savedInstanceState)— при пересозданииActivity, данные можно извлечь и восстановить
2. Fragment:
onSaveInstanceState(Bundle outState)— аналогичноonViewStateRestored(Bundle savedInstanceState)— удобное место для восстановления UIonCreateView()/onCreate()— можно тоже использоватьsavedInstanceState
Когда вызывается onSaveInstanceState()?
После onPause() и до уничтожения компонента системой. Чаще всего перед onStop() или onDestroy() в случае, если процесс может быть убит.