Я хочу опубликовать некоторые данные в веб-сервис и получить результат. это мой код:
fab.setOnClickListener {
viewModel.newBimeGozar(name)
.observe(this@BimeGozarAct, Observer {
dialogbimegozarNew?.hidePg()
})
}
это моя модель представления:
class BimeNewViewModel:ViewModel() {
private val repository=BimeNewRepository()
fun newBimeGozar(name: String): MutableLiveData<StatModel> {
return repository.newBimeGozar(name)
}
это мой репозиторий:
fun newBimeShode(
name: String
): MutableLiveData<StatModel> {
scope.launch {
val request = api.newBimeShode(name)
withContext(Dispatchers.Main) {
try {
val response = request.await()
regBimeshodeLiveData.value = response
} catch (e: HttpException) {
Log.v("this", e.message);
} catch (e: Throwable) {
Log.v("this", e.message);
}
}
}
return regBimeshodeLiveData;
}
работает нормально, но есть проблема , Я думаю, что наблюдатель продолжает работать, и если ответ результата является ошибкой, и пользователь снова нажимает кнопку fab, он создает нового наблюдателя, и после этого он возвращает два значения, первое значение - первый запуск, а второе значение - второй запуск.
как я могу это исправить? Какой правильный способ подачи форм?