私の Android アプリには、2 つのブロードキャスト レシーバーによって起動される 3 つのサービスがあります。最初の 2 つはファイルに書き込み、1 つのブロードキャスト レシーバーによって起動されるため、( 経由で) 1 つずつ実行されることを確認できますContext.sendOrderedBroadcast()
。3 番目のものは独立しており、別のブロードキャスト レシーバーによって起動されますが、最初の 2 つが書き込みを行ったのと同じファイルから読み取ります。
ブロードキャスト レシーバーは互いに同時にまたはほぼ同時に起動される可能性があるため、ファイルも同時にアクセスされる可能性があります。どうすればそれを防ぐことができますか?最初に読んでから書くか、書いてから読むことができるようにしたい。Android サービスは、私の間違いでなければ、まったく別の獣であるため、この問題が一般的な Java の同時実行性に似ているかどうかはわかりません。