Жизненный цикл ViewModel отличается от жизненного цикла фрагмента.Когда ориентация изменяется, Фрагмент воссоздается, но ViewModel остается.
Теперь, что происходит, когда вы обновляете значение MutableLiveData, оно передает обновление Наблюдателю;когда Фрагмент воссоздается при смене чередования, он снова подписывается на LiveData, и, поскольку происходит обновление значения, MutableLiveData передает это обновление недавно подписанному наблюдателю.
Так что вам следует, например,сохраните состояние фрагмента в onSaveInstanceState
, используйте saveInstanceState, чтобы получить последнее обновление значения MutableLiveData и проверьте, произошло ли изменение в наблюдателе, прежде чем показывать диалоговое окно.
Или вы можете переместить логику диалогана обработчик клика.По моему мнению, показ диалога в Обозревателе не очень хороший подход.