#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
Комментариев нет:
Отправить комментарий