Как очистить отложенные, не полученные данные датчика от sendbroadcast, используя переключатель? - PullRequest
0 голосов
/ 20 мая 2018

Я разрабатываю приложение, в котором данные датчиков, обнаруженные при износе Android, отправляются на мобильный через sendbroadcast.В мобильном приложении есть переключатель, позволяющий запускать и останавливать обнаружение датчика износа Android и процесс отправки данных датчика.

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

Можно ли каким-либо образом очистить все данные широковещания при нажатии переключателя остановки, поэтому при нажатии переключателя пуска он будет получать только новые данные из этого сеанса?

1 Ответ

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

Вы можете использовать заказанный boradcast:

void sendOrderedBroadcast (Intent intent, 
                String receiverPermission)

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

А затем вы можете abortBroadcat, когда захотите:

void abortBroadcast ()

Устанавливает флаг, указывающий, чтоэтот приемник должен прервать текущую трансляцию;работает только с трансляциями, отправленными через Context.sendOrderedBroadcast.Это предотвратит прием других вещательных приемников.Он по-прежнему будет вызывать onReceive (Context, Intent) BroadcastReceiver, который передал вызывающий объект Context.sendOrderedBroadcast.

Этот метод не работает с неупорядоченными широковещательными сообщениями, такими как те, которые отправляются с Context.sendBroadcast

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