Возможно ли, что BroadcastReceiver в фоновом режиме получает трансляцию? - PullRequest
2 голосов
/ 17 февраля 2012

Возможно ли, что BroadcastReceiver в деятельности, которая перешла в фоновый режим, получает трансляцию? Если нет, что мне делать?

EDIT:

Позвольте мне уточнить, что мне действительно нужно. У меня есть сервис, который будет получать данные с Bluetooth . Когда он успешно получит данные от устройства blue-tooth, служба передаст .

И есть три случая активности .

  1. передний план

Всплывающее диалоговое окно и спросить пользователя Я думаю, что это может быть просто сделано получателем регистрации в деятельности

  1. фон

Я просто не знаю, как сделать эту часть . Если я регистрирую получателя в приложении, отображается уведомление. После просмотра ответов ниже, я думаю, что могу зарегистрироваться в приложении.

  1. сон Разбуди устройство.

Спасибо.

Ответы [ 3 ]

5 голосов
/ 17 февраля 2012

Вы, вероятно, даже не хотите этого. Мероприятия не предназначены для такого использования.

Вы должны использовать сервис для обработки. Или запустите Activity, если для этого требуется пользовательский интерфейс.

На мой взгляд, есть две альтернативы.

  1. Запустите службу и зарегистрируйте получателя там.
  2. Если возможно, вы можете вместо этого зарегистрировать приемник вещания в манифесте и обработать его там. Помните, что получатель будет работать в главном потоке, поэтому вы должны сообщить об этом запущенной службе или запустить службу или действие здесь. Возможно, сервис, который выполняет одну задачу.

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

3 голосов
/ 17 февраля 2012

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

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

3 голосов
/ 17 февраля 2012

Возможно ли, что BroadcastReceiver в деятельности, которая перешла в фоновый режим, получает трансляцию?Если нет, что мне делать?

Возможно, вы получите уведомление в любое время после того, как позвоните registerReceiver и до того, как вы позвоните unregisterReceiver .Если вы получаете широковещательную рассылку, когда находитесь в «фоновом режиме», это, вероятно, означает, что вы не связали реестр и не отменили регистрацию вызовов для соответствующих методов в жизненном цикле своей деятельности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...