1

Android でのさまざまな課題 (特に、サービスが AlarmManager によって再作成されログが機能しない (または、いくつかの行が削除されているように見える) ) に従って、ブロードキャスト インテントとブロードキャスト レシーバーを使用して機能するようにコードの一部を再設計しています。ここで、情報源と多くのリスナーがいるとします。情報源は、いつでも受信者の 1 つだけに情報を送信したいと考えています。

time=1: Broadcaster->Recevier 1
time=2: Broadcaster->Recevier 2
time=3: Broadcaster->Recevier 3

これを実現するには、次の 2 つの方法があります。

  1. すべての受信者は、「com.me.stuff.INFO_FROM_SOURCE」などの同じアクション コードを使用できます。これは、Android システムが処理できる追加のブロードキャスト タイプが 1 つしかないことを意味しますが、情報は各受信者に送信され、各受信者はその情報が自分のためのものかどうかを判断する必要があります。

  2. 各受信者には、「com.me.stuff.INFO_FROM_SOURCE_TO_RECEIVER_X」などの独自のコードがあります。これは、Android システムが処理できるブロードキャストをより多く持つことを意味しますが、着信ブロードキャストを処理する必要があるのは 1 つのレシーバーだけです。

全体として、システムの負荷が最も低いのはどれですか?

4

1 に答える 1

0

私は2番目の方法でそれを行います。br メッセージは、1 つのことを行うためのものです。インテント バンドルに違いがあるアクションを 1 つ持つこともできると思いますが、アクションでフィルター処理できる場合は不要な手順のように思えます。

複数のアクションに対して同じ受信者フィルターを設定し、onReceive で、考えられるすべてのアクションをチェックする if ステートメントを挿入できます。

于 2013-03-27T15:36:46.280 に答える