Асинхронная задача Android должна быть привязана к приемнику вещания - PullRequest
0 голосов
/ 04 августа 2011

У меня есть фоновая служба, которая получает данные примерно один раз в секунду от внешнего датчика BT. Эти данные поступают и отправляются в пользовательский интерфейс с помощью широковещательного намерения / получателя. Данные в реальном времени отображаются в режиме реального времени. Все это работает хорошо прямо сейчас.

Что мне нужно сделать сейчас, и я не могу понять: настроить кнопку на пользовательском интерфейсе так, чтобы она начинала подсчет данных, поступающих с приемника вещания (который поступает примерно каждую секунду - но это не так достаточно последовательным, чтобы установить часы), и останавливается через определенную продолжительность, например, 10 секунд. Каждый раз, когда поступают новые данные, они должны добавляться к итоговому значению, а затем по истечении 10 секунд пользовательский интерфейс должен обновляться с итоговым значением вместе с некоторым сообщением, например «итого было 31».

Это звучит просто, но использование асинхронной задачи, которая казалась подходящей, доставляет мне проблемы, поскольку я не могу настроить задачу для запуска цикла (afaik), поскольку время цикла должно зависеть на входящую широковещательную квитанцию.

Есть идеи, как лучше всего это сделать, если не с помощью асинхронной задачи? Я думаю, что решение может быть простым, но я его не вижу. Спасибо за любую помощь!

1 Ответ

0 голосов
/ 04 августа 2011

A Timer и TimerTask помогут вам с проблемой синхронизации, и если вы захотите сделать все возможное, вы можете реализовать таймер, используя ScheduledThreadPoolExecutor .

...