Как использовать функцию повтора потока для определенного события?Android

Форум для тех, кто программирует под Android
Anonymous
Как использовать функцию повтора потока для определенного события?

Сообщение Anonymous »

Я вижу, что у Flow есть механизм повтора, но мой вариант использования несколько отличается от того, что я вижу в документе. У меня есть фрагмент, содержащий список, который заполняется из API при открытии этого фрагмента, но вызовы API могут завершиться неудачно. и выдать исключение по любой причине. В этом случае я хочу показать кнопку, которая снова вызывает API при нажатии, следующим образом:
Репозиторий

Код: Выделить всё

fun getData(): Flow = service.getData()
Модель просмотра

Код: Выделить всё

val data: Flow = repo.getData()
Фрагмент

Код: Выделить всё

viewModel.data.collect{ result ->
if(result is Error){
showRetryButton() // Show the retry button on failed API
}
....
}

retryButton.setOnClickListener{
// do something to retry the API call
}
Может ли Flow повторить попытку помочь мне в этом? если нет, то как вы думаете, как лучше всего снова вызвать отказавший API?
Заранее спасибо :)

Подробнее здесь: https://stackoverflow.com/questions/740 ... ific-event

Вернуться в «Android»