ブロードキャストインテントの順序は保証されていますか? つまり、もしそうなら、
sendBroadcast(intent1);
sendBroadcast(intent2);
レシーバーはインテント 2 の前にインテント 1 を取得することが保証されていますか? これに対する答えはノーだと思いますが、その場合、問題を解決する方法がよくわかりません。
デバイスがネットワーク上で話しているときにビジー状態を示し、ネットワーク通信が完了すると消えるアプリの「ビジー」インジケーターを作成しようとしています。すべてのネットワーク通信はインテント サービスで行われます。
これでの私の試みは、サービスでネットワーク通信を開始するときに BUSY_START インテントを送信し、ネットワーク通信が終了するときに BUSY_STOP を送信することでした。これはほとんど機能しているようですが、停止メッセージと開始メッセージの順序が間違っていることが時々あります。
この問題を解決するより良い方法はありますか?
ビジー インテントごとに ID を追加して、ペアリングできるようにしようと考えています。そうすれば、すでにストップを受け取ったスタートを受け取った場合、それを無視できます。または、おそらくもっと簡単に、整数のシーケンス番号を各ブロードキャストに追加します。現在のインテントのシーケンスが最後に受信したインテントのシーケンスよりも少ないブロードキャストを受信した場合は、無視してください。