Ответ
ViewModel сохраняет состояние до тех пор, пока связанный с ней компонент (Activity/Fragment) находится в активном состоянии (не уничтожается системой). Это включает:
- Конфигурационные изменения (поворот экрана)
- Временное уничтожение Activity системой для освобождения памяти
ViewModel очищается только когда:
- Activity завершает работу (finish())
- Fragment полностью удаляется (не просто detach)
Пример сохранения данных:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
_data.value = "Saved state"
}
}