Я думаю, что это плохое решение, потому что ваша ViewModel не должна ничего знать о View, и все из ViewModel должно 'push' для просмотра через DataBinding или Observer-Pattern.
ViewModel отвечает за обертывание модели и подготовку наблюдаемых данных, необходимых представлению.Он также предоставляет хуки для представления для передачи событий в модель.Однако ViewModel не привязан к представлению.
source
Даже если вы решили сделать такие вещи, вы должны понимать, что это может бытьтрудно управлять подписками, когда представление разрушено.
Когда вы хотите наблюдать что-то только один раз, вам нужно написать свои собственные расширения для LiveData ( здесь вы можете найти пример).Также вы можете прочитать эту статью, чтобы понять, как работать с одиночными событиями.
Если вы просто спросите, как вызывать что-то из ViewModel, когда в вашем View происходит какое-то конкретное событие, тогдалучшим решением здесь будет простой вызов метода во ViewModel из вашего представления в слушателе виджета (кнопка и т. д.)