android广播接收机中的竞争条件?

android广播接收机中的竞争条件?,android,android-intent,android-broadcast,Android,Android Intent,Android Broadcast,所以我的android应用程序中有一个滑块。当我将其移动到ON位置时,我会向我的后台应用程序发送两次广播 接收时的第一次广播根据广播中的键/值对创建/删除文件。 接收时的第二次广播检查文件是否存在。如果它存在,它将执行一些代码。我发送广播的代码是 Intent updateFile = new Intent(); updateFile.setAction("com.example.makefile"); updateFile.putExtra("enable", cr

所以我的android应用程序中有一个滑块。当我将其移动到ON位置时,我会向我的后台应用程序发送两次广播

接收时的第一次广播根据广播中的键/值对创建/删除文件。 接收时的第二次广播检查文件是否存在。如果它存在,它将执行一些代码。我发送广播的代码是

Intent updateFile = new Intent();           
updateFile.setAction("com.example.makefile");   
updateFile.putExtra("enable", create);          
sendBroadcast(updateFile);

Intent startCode = new Intent();            
startMWC.setAction("com.m87.dev.start");    
sendBroadcast(startCode);
我想知道第二次广播是否可能先收到?与中一样,在创建文件之前是否会检查文件是否存在

我曾考虑过将第二次广播移动到第一次广播的onReceive,但我并不总是希望它被执行,这就是为什么我这样做的原因

我想知道第二次广播是否可能先收到


是的,这是可能的,因为
sendBroadcast
是异步的。

在发送第二次广播之前添加睡眠计时器会是一种不好的做法吗?有更好的方法吗?是的,这是一种不好的做法。我不确定,但也许我会像你写的那样实现它——将第二个
sendBroadcast()
添加到第一个
广播接收器的
onReceive()
。如果你不想每次都打电话,你可以再多开一张支票……是的,谢谢。我修改了它,只使用了一个广播接收器来检查意图是否包含添加了不同意图的额外内容。