Ответ
ViewModel сохраняет свои данные при изменении конфигурации (поворот экрана), но уничтожается при окончательном закрытии Activity/Fragment (onCleared()). Основные методы:
onCreate()- вызывается при создании ViewModelonCleared()- вызывается перед уничтожением, здесь нужно освобождать ресурсы
Пример:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
override fun onCleared() {
super.onCleared()
// Освобождаем ресурсы
}
}
ViewModel переживает только временные изменения конфигурации, но не survives процесс смерти (process death). Для этого нужно использовать SavedStateHandle.