Ответ
Состояния (State) в Android приложении лучше хранить в ViewModel. ViewModel сохраняет данные при изменениях конфигурации (например, поворот экрана) и обеспечивает чистую архитектуру, отделяя UI-логику от данных.
Если состояние должно пережить уничтожение процесса, используйте SavedStateHandle внутри ViewModel или onSaveInstanceState() в Activity/Fragment.
Пример:
class MyViewModel(savedStateHandle: SavedStateHandle) : ViewModel() {
val counter: MutableLiveData<Int> = savedStateHandle.getLiveData("count", 0)
fun increment() {
counter.value = (counter.value ?: 0) + 1
}
}
Для сложных состояний (например, мультиэкранных) можно использовать StateFlow/SharedFlow или архитектурные подходы (MVI, Redux).