2011-10-03 36 views
1

我实现了一个示例应用程序,显示Android应用程序的电话信息,电池信息。我为两个活动创建了两个不同的Class文件。我可以在Android编程中注册一个以上的BroadcastReceiver吗?

获取手机相关信息没有问题。在手机上获取电池相关信息时出现问题。以下是我想要注册的一些预期操作。

Intent.ACTION_BATTERY_CHANGED 
Intent.ACTION_UMS_CONNECTED 
Intent.ACTION_UMS_DISCONNECTED 
Intent.ACTION_POWER_CONNECTED 
Intent.ACTION_POWER_DISCONNECTED 

案例1 - 我为上述每个操作注册了多个BroadcastReceivers。 结果 - 只有ACTION_BATTERY_CHANGED操作数据正常。但其他与行动有关的数据并没有好起来。

案例2 - 我只为ACTION_BATTERY_CHANGED注册了一个BroadcastReceiver。在执行onReceive(Context context, Intent intent)方法时,我正在检查其他操作(ACTION_UMS_CONNECTED, ACTION_UMS_DISCONNECTED, ACTION_POWER_CONNECTED, ACTION_POWER_DISCONNECTED)

结果 - 仍然是同样的问题,其他操作相关的信息没有出现。

我使用Android 2.1 update-1版本的Android手机进行测试。

回答

3

我可以在Android编程中为一个活动注册多个BroadcastReceiver吗?

AFAIK,是的。此外,对于您的方案,您不一定需要多个BroadcastReceiver对象 - 您可以创建一个列出您所需的所有操作的单个IntentFilter(请参阅addAction()方法)。

其余全部都是错误的数据

那句话并不英语解析,对不起。

结果 - 仍然是相同的问题其他行动相关的信息是不是很好。

如果您没有为给定的广播操作注册接收器,您将不会收到该操作的广播。

+0

感谢它的正常工作。 –

相关问题