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

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

onReceive() имеет таймаут, из документации:

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

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

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

Благодарю.

 Alexandru Luchian10 янв. 2011 г., 20:00
Прочитайте мой комментарий ниже. Я говорю о режиме отладки.
 Falmarri10 янв. 2011 г., 19:29
Если вы занимаетесь вещанием, которое занимает даже больше доли секунды в вашем приемнике вещания, вы делаете это неправильно.

Ответы на вопрос(2)

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

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

 Para03 янв. 2017 г., 14:45
Как точно вы изменили его? У меня такая же проблема.
 Jeremy Stein03 янв. 2017 г., 19:06
@Para, я закомментировал код, который отправлял широковещательные сообщения в отлаживаемом разделе, начиная с точки останова.
Решение Вопроса

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

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

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

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

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

 Charlie Collins10 янв. 2011 г., 20:07
Неважно, что вы находитесь в режиме «DEBUG». Вы по-прежнему хотите, чтобы получатель немедленно перешел к другому компоненту, вероятно, в качестве службы, рекомендованной более высокой скоростью. Это правильный дизайн, и будет легче отлаживать и устранять неполадки, а также не вызывать тайм-ауты получателя (ведите запись в журнал или что-то еще, что занимает больше времени в Сервисе).
 elevine10 янв. 2011 г., 22:15
Вы имеете в виду, что вы устанавливаете точку останова в своем методе onReceive, и пока вы приостановлены, приложение принудительно завершает работу?
 Alexandru Luchian10 янв. 2011 г., 19:55
Ребята, я с вами согласен. Ты прав. В версии выпуска это не должно занять много времени. Но я говорю в режиме отладки, когда я отлаживаю свой код.
 Alexandru Luchian10 янв. 2011 г., 22:31
@elevine да, именно так. Извините, я не прояснил это в вопросе.
 Falmarri10 янв. 2011 г., 19:30
Это верно. ЕДИНСТВЕННАЯ цель широковещательного приемника должна состоять в том, чтобы передавать данные чему-то другому.

Ваш ответ на вопрос