Отправка данных из сервиса в активность без опроса - PullRequest
0 голосов
/ 09 мая 2018

У меня есть служба, которая поддерживает соединение (последовательный порт Bluetooth или соединение TCP) с внешней системой. Когда данные получены по соединению, они должны быть переданы в действие, которое затем может проанализировать и отобразить его. Подумайте о приборной панели с некоторыми индикаторами, которые реагируют на новые данные в режиме реального времени.

Я не хочу, чтобы активность запрашивала данные у службы. Я хочу, чтобы служба «подталкивала» данные к активности, когда она поступает. Как это лучше всего достигается?

Должен ли я сделать трансляцию из сервиса? Данные (поток линий CSV) будут поступать непрерывно. Я не знаю, должны ли трансляции использоваться так часто - например, несколько десятков обновлений в секунду.

Какой стандартный способ это сделать?

1 Ответ

0 голосов
/ 09 мая 2018

Может быть два подхода:

1.Используйте LocalBroadcastReceiver

Зарегистрируйте получателя в своей деятельности, которая будет прослушивать изменения и соответственно обновлять пользовательский интерфейс.

2.Свяжите службу и передайте интерфейс прослушивателя.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...