#java #android #rxjava #rxandroid
Исходные данные:
Есть проект, который использует методы из SDK стороннего проекта (асинхронные методы
для работы с их сервером с параметром-колбэком) и содержит в себе Retrofit2 + OkHttp
+ Rx для работы с сервером напрямую. Для удобства используются лямбды.
Задача:
Необходимо, чтобы все запросы (и из SDK, и через Retrofit) выполнялись не чаще чем
5 раз в секунду, а если лимит превышен, выполнялись с задержкой.
Вопрос:
Как это реализовать? Первое, что приходит в голову - это Service + BroadcastReceiver.
Но придется слушать ресивер в каждом активити/фрагменте, плюс получится не такая удобная
реализация колбэков... Может быть можно это как-то реализовать с помощью Rx (в том
числе обернув методы SDK), чтобы оставить лямбды для удобства?
Ответы
Ответ 1
Может это поможет? Subscription subscription = Observable.interval(1000, 5000, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1() { public void call(Long aLong) { // here is the task that should repeat } }); https://stackoverflow.com/a/49718536/10965132
Комментариев нет:
Отправить комментарий