我的 Android 应用程序中有三个服务由两个广播接收器触发。前两个写入文件并由一个广播接收器触发,因此我可以确保它们一个接一个地执行(通过Context.sendOrderedBroadcast()
)。第三个是独立的,由一个单独的广播接收器触发,但从前两个写入的同一个文件中读取。
因为广播接收器可能同时或几乎同时被触发,所以文件也可能被同时访问。我怎样才能防止这种情况发生?我希望能够先读后写或先写后读。我只是不确定这个问题是否与一般的 Java 并发相似,因为如果我没记错的话,android 服务是一个完全不同的野兽。