2017-03-31 4 views
1

A、B、C、Dとすべてが同じBroadCastReceiverに登録されているとします。オーダー・アクティビティがブロードキャスト・インテントを受信するブロードキャスト・メッセージを送信している間。それはA、B、C、Dまたはランダムのような順序です。放送受信機はどのように活動の中で動作しますか?

私に教えてください、私にいくつかの提案を教えてください。

+0

私は決してこれをやったことはありませんが、大声で考えてみましょう... 1つのアクティビティは一度にアクティブになるので、アクティブなアクティビティが最初に通知されるのでしょうか? –

+1

あなたは文書を読んだことがありますか? https://developer.android.com/guide/components/broadcasts.html特にsendOrderedBroadcast(Intent、String)で再生されます。だから私はそれが依存すると言うだろう。あなたの質問は、それについて明確にするために必要な情報を提供していません –

答えて

1

Systemは登録済みのブロードキャストリスナーにこれらのアクションをディスパッチするため、コントロールはありません。あなたは、受注放送に何の保証もありません。

ブロードキャストが発注されていない限り、 docsから:

sendOrderedBroadcast(テント、String)を方法は、一度に1つの受信機にブロードキャストを送信します。各受信機が順番に実行されると、次の受信機に結果を伝搬することができ、または他の受信機に渡されないように放送を完全に中断することができる。受信機の実行順序は、一致するインテントフィルタのアンドロイド:優先度属性で制御できます。同じ優先順位の受信者は任意の順序で実行されます。

+0

ああ! 、ありがとう、私は疑いがなくなった。はい、かなりランダムです。私は、アクティビティスタックが役割を果たしているかもしれないと考えていた。 – animation123

+1

私のコメントは言う:そのはっきりしていない、順序付けられた放送がある@HenningLuther、よい点 –

+0

。私は自動的に普通の放送を引き受けた。私の答えを編集します。ありがとう。 – azizbekian

1

注文されたブロードキャストを持つ可能性があります。 1つの放送であるかどうかによって異なります。放送する場合はsendOrderedBroadcast(Intent, String)を使用し、受信者を優先します。他の誰かが放送局であれば、あなたは注文したかどうかを知る必要があります。もし彼がいないなら、チャンスはありません。さもなければあなたの受信者を推理することができます。

1

アンドロイドにはを送信する3つの方法があります。すなわち、3,である。ここではsendBroadcastについて話しているので、登録されている放送の順序にかかわらず、登録された放送受信者に放送を送信するだけです。

関連する問題