6

LocalBroadcastManagerブロードキャストが受信されたかどうかを確認する方法はありますか?または聴かれている?LocalBroadcastManagerブロードキャストが受信されたかどうかを確認する方法はありますか?

基本的に私は、Googleクラウドメッセージを受信するIntentServiceを持っています。それが得られたら、私は通知を表示するか、私の主なサービスに新しいメッセージがあることを警告する必要があります - 重要なことに、私は両方を望んでいません!だから私はメッセージが私のメインサービスによって処理されたかどうかを知る必要があります。

明らかに、sendOrderedBroadcastとBroadcastReceiverで行うことができますが、それは私の単純なプライベートイントラプロセスの必要性のために残念です。

+0

最初に2つのサービスが必要なのはなぜですか? – CommonsWare

+2

@CommonsWare - それらは大規模な目的とライフサイクルを持っているため、それらを分離するためのアプリケーションアーキテクチャが向上します。 1つはIntentServiceで、もう1つはバインドされたサービスです。 – ostergaard

答えて

25

LocalBroadcastManagerブロードキャストを受信したかどうかを確認する手段はありますか?または聴かれている?

sendBroadcast()戻りtrueがあった場合1+レシーバ、falseそう。これは文書化されていませんが、現在の実装に基づいています。私はan issue to get that documentedを提出しました。

したがって、IntentServicesendBroadcast()を使用して、実行中のメッセージにはService(存在する場合)を送信できます。そうであれば、sendBroadcast()trueを返し、IntentServiceはメッセージをそこで処理する必要があることを認識します。 sendBroadcast()falseを返す場合は、Notificationを上げることができます。

+1

DUH!私はブール値の結果を見て、ちょうど放送がうまくいったことを意味するだろうと思った。放送。ありがとう。 – ostergaard

+0

これは本当に***なのですか?ありがとう@ CommonsWare! –

関連する問題