Это потому, что LiveData не предназначена для обработки одноразовых событий.
У вас есть несколько вариантов:
- SingleLiveData
SingleLiveData, как было представлено в Google Android Образец - это LiveData, который отправляет обновление только один раз.
SingleLiveData
EventWrapper (Если вы собираетесь придерживаться LiveData для обработки событий, я рекомендую этот)
FragmentAViewModel {
val navigateLiveData = MutableLiveData<EventWrapper<Unit>>()
}
Эта замечательная статья демонстрирует EventWrpper и одиночные LiveData
Шина событий