2013-03-27 63 views
1

继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系统有更多可能的广播处理,但只有一个接收器必须处理传入的广播。

总的来说,哪个系统负载最少?

回答

0

我会做第二种方式。 br消息意味着做一件事。我想你可以对意图包中的差异进行一个动作,但是当你可以通过动作过滤时,这似乎是一个不必要的步骤。

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