Отладка метода Android BroadcastReceiver onReceive() в Android Studio

Я новичок в разработке Android. Я использую Android Studio 2.2.3. Когда я пытаюсь отладить, что происходит, когда класс расширяет BroadcastReceiver и вызывается метод onReceive(), я не могу, потому что есть тайм-аут. Я вижу это в логах.

Thread[5,tid=13474,WaitingInMainSignalCatcherLoop,Thread*=0xf3c30c00,peer=0x12c0a0a0,"Signal Catcher"]: реакция на сигнал 3

Я понимаю из документов, что это необходимо, потому что все должно происходить быстро, но нет ли способа продлить этот период ожидания для отладки? Код не требует много времени для запуска, мне просто нужно больше времени для его отладки.

Моя ОС Windows 10.


person Para    schedule 03.01.2017    source источник
comment
Я не уверен, почему вы видите именно это сообщение, но я знаю, что вы можете без проблем отладить onReceive() — я сталкивался с этим много раз. Что-то еще происходит, что вызывает это исключение. Возможно, если бы вы предоставили соответствующий код, мы могли бы лучше вам помочь.   -  person Jon Adams    schedule 03.01.2017
comment
Даже если я загружаю код с GitHub, он делает то же самое. Пробовал с виджетами домашней стяжки.   -  person Para    schedule 03.01.2017
comment
Загрузил эту github.com/MatthewDailey/late-counter-android точку останова при получении, отладчик вылетает через несколько секунд.   -  person Para    schedule 03.01.2017
comment
Не по теме: но если у вас есть проблема с чужим кодом на github, вы можете также открыть проблему с автором на github.   -  person Jon Adams    schedule 03.01.2017
comment
Да, но, как я уже сказал выше, у меня есть проблема со всеми методами onReceive(). Я нашел этот код только потому, что искал что-то похожее на то, что я делал, и хотел посмотреть, не проблема ли в моем коде. Либо мы оба что-то делаем, либо есть проблема с конфигурацией, либо, как я читал в документации, onReceive нужно завершить очень быстро, но в документации ничего не сказано о том, как отлаживать onReceive в этом случае.   -  person Para    schedule 03.01.2017
comment
Вы пробовали это с другим устройством и/или эмулятором?   -  person Jon Adams    schedule 03.01.2017
comment
Я пробовал с genymotion и официальным эмулятором, который поставляется с Android Studio. То же самое.   -  person Para    schedule 03.01.2017
comment
Это не решение проблемы, но вы всегда можете вернуться к Log.d() отладке — не прерывая поток, а выводя любые переменные, необходимые для проверки, и продолжая выполнение.   -  person Jon Adams    schedule 03.01.2017
comment
Я искал что-то более... постоянное. :)   -  person Para    schedule 03.01.2017


Ответы (1)


Это нечто среднее между обходным путем и решением, но мне оно подходит.
Я зашел в Настройки эмулируемого устройства -> Параметры разработчика и включил "Показать все ANR", и теперь появляется предупреждение "Ваше приложение не отвечает". ", и я могу нажать "ПОЖИДАТЬ", и, похоже, это сработает.

person Para    schedule 22.01.2017