Как использовать функцию повтора потока для определенного события?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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