Каково значение
android.os.Debug.waitForDebugger();
Я знаю, что нам [иногда] нужно использовать эту функцию для отладки Service
, но мой вопрос :
- ПОЧЕМУ мы должны это делать?
- Почему существует этот метод? Какой еще цели он служит?
- Что означает присоединить отладчик к процессу и почему мы должны это делать? Почему именно так нужно отлаживать
Service
, а неActivity
илиBroadcastReceiver
?
Можно было бы подумать, что отладка любого кода в проекте будет простой задачей. Но это не так. Во всяком случае, не для Service
.
В чем причина существования этой специальной процедуры? А для чего еще он используется?
Подождите, пока не подключится отладчик. Как только отладчик подключается, это возвращается, поэтому вам нужно будет поставить точку останова после вызова waitForDebugger(), если вы хотите начать трассировку немедленно.
Вопрос ПОЧЕМУ остается без ответа.
ОБНОВЛЕНИЕ:
Я нашел один вариант использования этой функции: когда приложение Android автоматически перезапускается после завершения процесса приложения. Процесс завершается, когда пользователь переключает разрешение среды выполнения в настройках приложения. В более общем случае процесс приложения уничтожается и перезапускается всякий раз, когда...
android.os.Process.killProcess(android.os.Process.myPid());
называется.
Чтобы отлаживать приложение после перезапуска процесса, вы пишете android.os.Debug.waitForDebugger()
в своем коде, а затем подключаете отладчик к текущему процессу.
Android: отладка процесса запуска приложения.
Это один из вариантов использования этой функции.
Ссылки:
Правильный способ отладки службы в Android Studio?.
Точка останова в службе не работает.
Как отлаживать фоновую службу Android?.
Как подключить отладчик к обработке с первой строки без компиляции кода каждый раз.
вы можете подключить отладчик после того, как приложение уже открытоа>.
Возможно, связано:
Служба специальных возможностей отключается при каждом запуске отладки
Что означает "Drop Frame" при использовании отладчика Java в Intellij?
android.os.Debug.waitForDebugger()
для отладки кодаService
? - person pskink   schedule 24.09.2019onStartCommand
и вызвалstartService
, и отладчик остановился на этой точке останова - если вы используете службы, которые работают в процессе, отличном от исходного пакета, то напишите это явно в своем вопросе - нормальные сервисы работают без проблем - person pskink   schedule 24.09.2019android:process=..
в файлеAndroidManifest.xml
? - person pskink   schedule 24.09.2019