Могу ли я зарегистрировать более одного BroadcastReceiver для действия в программировании на Android? - PullRequest
1 голос
/ 03 октября 2011

Я реализовал пример приложения, которое показывает информацию о телефоне, информацию о батарее приложения Android. Я создал два разных файла класса для двух действий.

Нет проблем с получением информации, связанной с телефоном. Существует проблема с получением информации о батарее на моем телефоне. Ниже приведены некоторые из ожидаемых действий, которые я хочу зарегистрировать.

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 - я зарегистрировал только один BroadcastReceiver для ACTION_BATTERY_CHANGED. При реализации метода onReceive(Context context, Intent intent) я проверяю другие действия (ACTION_UMS_CONNECTED, ACTION_UMS_DISCONNECTED, ACTION_POWER_CONNECTED, ACTION_POWER_DISCONNECTED)

Результат - все та же проблема, информация о других действиях не подходит.

Я тестировал на своем телефоне Android с версией Android 2.1 update-1.

1 Ответ

3 голосов
/ 03 октября 2011

Могу ли я зарегистрировать более одного BroadcastReceiver для действия в программировании на Android?

AFAIK, да.Более того, вам не обязательно нужно несколько BroadcastReceiver объектов для вашего сценария - вы можете создать один IntentFilter, в котором перечислены все ваши нужные действия (см. Метод addAction()).

Остальноеиз всех данных об ошибках

Это предложение не анализируется на английском языке, извините.

Результат - все та же проблема, информация о других действиях не подходит.

Если вы не зарегистрируете получателя для данного действия широковещания, вы не будете получать широковещательные сообщения для этого действия.

...