面对Android的各种挑战(特别是Service being re-Created by AlarmManager和Log not working (or seems to drop some lines)),我正在重新设计一些代码,以使用广播意图和广播接收器。现在,假设您有一个信息来源和许多听众。信息来源希望在任何时间点仅向其中一个接收者发送信息:
time=1: Broadcaster->Recevier 1
time=2: Broadcaster->Recevier 2
time=3: Broadcaster->Recevier 3
有两种方法可以实现这一目标:
所有接收者都可以使用相同的动作代码,比如“com.me.stuff.INFO_FROM_SOURCE”。这意味着android系统只有一个额外的可能广播类型可以处理,但信息发送到每个接收者,每个接收者必须决定信息是否适合他们。
每个接收者都有自己的代码,比如“com.me.stuff.INFO_FROM_SOURCE_TO_RECEIVER_X”。这意味着android系统有更多可能的广播要处理,但只有一个接收者必须处理传入的广播。
总体而言,系统负载最小?
答案 0 :(得分:0)
我会以第二种方式做到这一点。 br消息意味着做一件事。我想你可以在intent bundle中有一个不同的动作,但是当你可以按行动过滤时,这似乎是一个不必要的步骤,它的意思就是过滤它。
你可以为多个动作设置相同的接收器过滤器,然后在onReceive上放入一个if语句来检查所有可能的动作。