Java 如何使用开关从sendbroadcast清除延迟未接收的传感器数据?
我正在开发一个应用程序,通过sendbroadcast将android wear上检测到的传感器数据发送到手机。移动应用程序中有一个开关,用于启动和停止android wear上的传感器检测和传感器数据发送过程 问题是,从android wear发送数据的位置到使用broadcastreceiver在移动设备上接收数据都有延迟。因此,每当我按下开关停止服务,然后再次按下开关重新启动流程时,手机将继续接收上一个会话的剩余数据,然后再接收新会话的数据Java 如何使用开关从sendbroadcast清除延迟未接收的传感器数据?,java,android,mobile,broadcastreceiver,Java,Android,Mobile,Broadcastreceiver,我正在开发一个应用程序,通过sendbroadcast将android wear上检测到的传感器数据发送到手机。移动应用程序中有一个开关,用于启动和停止android wear上的传感器检测和传感器数据发送过程 问题是,从android wear发送数据的位置到使用broadcastreceiver在移动设备上接收数据都有延迟。因此,每当我按下开关停止服务,然后再次按下开关重新启动流程时,手机将继续接收上一个会话的剩余数据,然后再接收新会话的数据 单击停止开关时,是否有任何方法可以清除所有广播数
单击停止开关时,是否有任何方法可以清除所有广播数据,这样当我按下启动开关时,它将只接收来自此会话的新数据?您可以使用ordered boradcast:
void sendOrderedBroadcast (Intent intent,
String receiverPermission)
向所有感兴趣的广播接收者广播给定的意图,
一次交付一个,以允许更多首选接收者
在将广播传送到不太受欢迎的位置之前先使用广播
接受者。这个调用是异步的;它立即返回,而您
将在接收器运行时继续执行
然后,您可以在需要时中止RoadCat:
void abortBroadcast ()
设置指示此接收器应中止当前操作的标志
广播;仅适用于通过发送的广播
Context.sendOrderedBroadcast。这将阻止任何其他广播
从接收广播的接收器。它仍然会打电话
调用方的BroadcastReceive的onReceive(上下文、意图)
传入了Context.sendOrderedBroadcast
此方法不适用于非有序广播,例如
与Context.sendBroadcast一起发送
谢谢你的回答!