首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用交换机从发送广播中清除延迟的未接收传感器数据?

如何使用交换机从发送广播中清除延迟的未接收传感器数据?
EN

Stack Overflow用户
提问于 2018-05-20 06:46:31
回答 1查看 59关注 0票数 0

我正在开发一款应用程序,在安卓穿戴设备上检测到的传感器数据将通过发送广播发送到移动设备。移动应用程序中有一个开关,可以启动和停止android佩戴上的传感器检测和传感器数据发送过程。

问题是,从android wear发送数据的地方会有一个延迟,直到移动设备使用broadcastreceiver接收数据。因此,每当我按下开关以停止服务,然后再次按下开关以再次启动该过程时,移动设备将在接收来自新会话的数据之前继续接收来自前一会话的剩余数据。

有没有什么方法可以在点击stop开关时清除所有广播数据,这样当我按下start开关时,它将只接收来自该会话的新数据?

EN

回答 1

Stack Overflow用户

发布于 2018-05-20 07:22:20

您可以使用有序广播:

代码语言:javascript
复制
void sendOrderedBroadcast (Intent intent, 
                String receiverPermission)

将给定意图广播给所有感兴趣的BroadcastReceivers,一次传送一个,以允许更多的首选接收器在广播传送给不太受欢迎的接收器之前消费该广播。此调用是异步的;它立即返回,您将在接收器运行时继续执行。

然后你可以在你想要的时候使用abortBroadcat:

代码语言:javascript
复制
void abortBroadcast ()

设置指示此接收器应中止当前广播的标志;仅适用于通过Context.sendOrderedBroadcast发送的广播。这将阻止任何其他广播接收器接收该广播。它仍然会调用Context.sendOrderedBroadcast的调用者传入的BroadcastReceiver的onReceive(Context,Intent)。

此方法不适用于无序广播,如使用Context.sendBroadcast发送的广播

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50430153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档