2012-04-05 3 views
7

В моем приложении активность запускает сервис, который выполняется как отдельный процесс, я хочу отлаживать действие, а также службу, но отладчик не останавливается на контрольных точках в службе?Как отлаживать два процесса в Android?

Спасибо за помощь.

+0

Он должен :-). Нет причин, по которым контрольные точки обслуживания не пострадали. Можете ли вы успешно остановиться в точке останова в действии, которое вы используете для запуска службы? – tomtheguvnor

+0

@tomtheguvnor В действии, да. –

+3

Временно сделайте это не отдельным процессом. Еще лучше, надолго сделайте это не отдельным процессом, так как это вообще не нужно и расточительно относится к ОЗУ и ЦП. – CommonsWare

ответ

5

Временно не делайте это отдельным процессом.

@CommonsWare

4

Вам необходимо включить отладку на отдельный процесс.

Откройте перспективу DDMS (в отличие от Debug или Java). В DDMS-> Devices выберите процесс своей службы и нажмите кнопку отладки (кнопка с маленькой зеленой кнопкой). Рядом с вашим процессом появится значок отладки, тогда вы сможете использовать точки останова в своем Сервисе.

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

Перед включением отладки:

enter image description here

После включения отладки:

enter image description here

(конечно, временно делая обслуживание без удаленных тоже работает, но у меня был экземпляр где это было непрактично)

+0

+1, оцените ответ. Я больше не использую два процесса, поэтому я разрешу сообществу проверять ответ, прежде чем принять его. –

+0

Те же направления, но для IntelliJ http://stackoverflow.com/a/10703431/9636 –

5

Просто для уточнения других ответов здесь вы можете временно поставить android.os.Debug.waitForDebugger(); в код вашего вторичного процесса, чтобы сделать это проще.

Затем просто присоедините свой отладчик к процессу через DDMS или IntelliJ (или все, что вы используете).

+0

Официальный совет, который звучит с помощью сотрудника google, чтобы поддержать это: https://groups.google.com/d/msg/ андроид-разработчиков/DftP5gYcwYI/j_mccTSCHNQJ –

Смежные вопросы