Основная проблема, которую я считаю в вашем случае, заключается в том, что вы инициируете вызов и получаете его ответ, но ваша деятельность не узнает ни об одном из этих изменений. Без этого вам, возможно, придется создать некоторые пользовательские классы утилит или какой-то другой обходной путь, который, на мой взгляд, будет очень плохой практикой.
Я предлагаю вам создать MutableLiveData
объект для вашего ответа в вашей активности ViewModel
, затем передайте этот объект в свой репозиторий, чтобы, когда ваша модернизация завершила ваш вызов, вы могли опубликовать результат на своем объекте livingata.
И в своей деятельности вы должны наблюдать за этими liveata на предмет изменений. Итак, когда вы получаете результат и публикуете новое значение, то в onChanged()
наблюдателя liveata активности вы можете получить результат и даже заставить свой индикатор выполнения исчезнуть.
Извините, если это было слишком сложно понять. Вот хороший маленький учебник , на который вы можете сослаться. Я полагаю, что это облегчит пример. Удачи!