有多个广播动作或多个听众可以更好吗?

时间:2013-03-27 15:02:18

标签: android android-broadcast

面对Android的各种挑战(特别是Service being re-Created by AlarmManagerLog not working (or seems to drop some lines)),我正在重新设计一些代码,以使用广播意图和广播接收器。现在,假设您有一个信息来源和许多听众。信息来源希望在任何时间点仅向其中一个接收者发送信息:

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

有两种方法可以实现这一目标:

  1. 所有接收者都可以使用相同的动作代码,比如“com.me.stuff.INFO_FROM_SOURCE”。这意味着android系统只有一个额外的可能广播类型可以处理,但信息发送到每个接收者,每个接收者必须决定信息是否适合他们。

  2. 每个接收者都有自己的代码,比如“com.me.stuff.INFO_FROM_SOURCE_TO_RECEIVER_X”。这意味着android系统有更多可能的广播要处理,但只有一个接收者必须处理传入的广播。

  3. 总体而言,系统负载最小?

1 个答案:

答案 0 :(得分:0)

我会以第二种方式做到这一点。 br消息意味着做一件事。我想你可以在intent bundle中有一个不同的动作,但是当你可以按行动过滤时,这似乎是一个不必要的步骤,它的意思就是过滤它。

你可以为多个动作设置相同的接收器过滤器,然后在onReceive上放入一个if语句来检查所有可能的动作。