Кто вызывает коллбэк onSavedStateHandle

«Кто вызывает коллбэк onSavedStateHandle» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Коллбэк onSavedInstanceHandle вызывается автоматически системой Android при уничтожении активити/фрагмента (например, при повороте экрана или при убийстве процесса системой). Он сохраняет состояние в SavedStateHandle, которое затем можно восстановить при пересоздании.

Пример с ViewModel:

class MyViewModel(savedStateHandle: SavedStateHandle) : ViewModel() {
    init {
        savedStateHandle.set("key", "value") // сохранение
        val value = savedStateHandle.get<String>("key") // восстановление
    }
}

Для фрагментов/активити используется SavedStateRegistry, который интегрируется с Lifecycle.