Может ли ViewModel пережить смерть процесса

«Может ли ViewModel пережить смерть процесса» — вопрос из категории Android компоненты, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, ViewModel не переживает смерть процесса (force-stop или перезапуск системы). ViewModel сохраняется только во время конфигурационных изменений (поворот экрана и т.д.), но уничтожается при завершении процесса. Для сохранения данных между запусками приложения используйте onSaveInstanceState() или постоянное хранилище (Room, SharedPreferences).

Пример с SavedStateHandle:

class MyViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel() {
    val data: MutableLiveData<String> = savedStateHandle.getLiveData("key")

    fun saveData(value: String) {
        savedStateHandle["key"] = value
    }
}