У меня есть фоновая служба, которая получает данные примерно один раз в секунду от внешнего датчика BT. Эти данные поступают и отправляются в пользовательский интерфейс с помощью широковещательного намерения / получателя. Данные в реальном времени отображаются в режиме реального времени. Все это работает хорошо прямо сейчас.
Что мне нужно сделать сейчас, и я не могу понять: настроить кнопку на пользовательском интерфейсе так, чтобы она начинала подсчет данных, поступающих с приемника вещания (который поступает примерно каждую секунду - но это не так достаточно последовательным, чтобы установить часы), и останавливается через определенную продолжительность, например, 10 секунд. Каждый раз, когда поступают новые данные, они должны добавляться к итоговому значению, а затем по истечении 10 секунд пользовательский интерфейс должен обновляться с итоговым значением вместе с некоторым сообщением, например «итого было 31».
Это звучит просто, но использование асинхронной задачи, которая казалась подходящей, доставляет мне проблемы, поскольку я не могу настроить задачу для запуска цикла (afaik), поскольку время цикла должно зависеть на входящую широковещательную квитанцию.
Есть идеи, как лучше всего это сделать, если не с помощью асинхронной задачи? Я думаю, что решение может быть простым, но я его не вижу. Спасибо за любую помощь!