BroadcastReceiver onReceive timeout - PullRequest
8 голосов
/ 10 января 2011

Я расширяю BroadcastReceiver, а в onReceive() я делаю все, что мне нужно.

onReceive() имеет время ожидания, из документации:

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

Это создает проблему, когда я нахожусь в режиме отладки.Мне нужно больше 10 секунд (иногда).Если я не выполняю всю отладку в течение 10 секунд, мое соединение закрывается и отладка прекращается.

Можно ли увеличить время ожидания или отключить его для целей отладки?

Спасибо.

Ответы [ 2 ]

11 голосов
/ 10 января 2011

Чтобы предотвратить принудительное закрытие приложения во время отладки во время отладки, попробуйте установить приложение Dev Tools и включить параметр Отладка приложения , который:

Позволяет выбрать приложение для отладки. Вам не нужно устанавливать это прикрепить отладчик, но установив этот значение имеет два эффекта:

  • Это предотвратит появление ошибки Android, если вы приостановите точка останова в течение длительного времени отладки.

Все подробности здесь: http://developer.android.com/tools/debugging/debugging-devtools.html

Если вы делаете что-то сложное в своем методе onReceive, подумайте о том, чтобы BroadcastReceiver запустил Сервис и передал данные, полученные из onReceive. Service может выполнять более длительную обработку.

1 голос
/ 15 ноября 2013

Я сталкивался с этой проблемой даже в режиме отладки.Оказывается, что другая передача была отправлена ​​и не была обработана, потому что я отлаживал другую передачу в главном потоке.Android считал, что мой процесс находится в ANR, и убил весь процесс.

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

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