Java 如何使用开关从sendbroadcast清除延迟未接收的传感器数据?

Java 如何使用开关从sendbroadcast清除延迟未接收的传感器数据?,java,android,mobile,broadcastreceiver,Java,Android,Mobile,Broadcastreceiver,我正在开发一个应用程序,通过sendbroadcast将android wear上检测到的传感器数据发送到手机。移动应用程序中有一个开关,用于启动和停止android wear上的传感器检测和传感器数据发送过程 问题是,从android wear发送数据的位置到使用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一起发送


谢谢你的回答!