0

背景Androidブロードキャストのインテントは配信されますか?

私はBOOT_COMPLETED放送で開始し、その後、その後、バックグラウンドで定期的に実行された背景IntentServiceを持っています。

IntentServiceは、操作の結果としてブロードキャストインテントを送出し、ブロードキャストインテントを処理するためにマニフェストに登録されているBroadcastReceiverによって受信されます。

問題

私はインテントは、通常の動作の下で配信されていることを確認しましたが、ブロードキャストインテントの一部が右のデバイスを再起動した後に配信されていないかのように表示されます。この明らかなデータ損失のさまざまな原因を絞り込むことを試みています。

私の質問は:放送されたインテントは、送信された後に配信されることが保証されているのか、それとも失われた可能性があるのでしょうか?

+0

"IntentServiceは操作中に順序付きブロードキャストインテントを送信し、その結果はSQLiteデータベースに記録されます" - なぜですか? IntentServiceに結果をデータベースに格納させるだけではどうですか?これは、放送を受信することになっている他のアプリですか?また、注文された放送をキャンセルできることにも注意してください。それを超えて、あなたはあなたが放送をどのように送っているかを実証する[mcve]と、それを受信するためにあなたの 'BroadcastReceiver 'をどのように持っているかを示す必要があります。 – CommonsWare

+0

これらは配信されることが保証されていますが、特にAndroidの新しいバージョンでは注文されません。 – MiltoxBeyond

+0

@MiltoxBeyondこれを記載した文書をご存知ですか?私は容易に見つけることができないようです。 – gyoda

答えて

0

ブロードキャストの配信は保証されません。私はそれについての情報は見つかりませんでした。私はあなたが構成の変更中に要素を格納するためにいくつかのキュー(またはキャッシュ)を準備し、放送受信機が登録されるとそれらを送信する必要があると思います。代わりに、EventBusのようなサードパーティ製のライブラリを「スティッキーイベント」でチェックすることもできます。

運が良かった!

関連する問題