1

我实现了一个示例应用程序,它显示了 Android 应用程序的电话信息、电池信息。我为两个活动创建了两个不同的类文件。

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

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

案例 1 - 我为上面给出的每个操作注册了多个广播接收器。结果 - 只有 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 手机进行了测试。

4

1 回答 1

4

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

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

其余都是错误数据

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

结果 - 仍然是同样的问题,其他与操作相关的信息没有正常显示。

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

于 2011-10-03T10:46:34.713 回答