有什么意义
android.os.Debug.waitForDebugger();
Run Code Online (Sandbox Code Playgroud)
我知道我们 [有时] 需要使用此函数来调试 a Service
,但我的问题是:
Service
必须以这种方式调试,而不是 an Activity
or BroadcastReceiver
?有人会认为在项目中调试任何类型的代码都很简单。除了它不是。Service
反正不是为了。
这个特殊程序存在的原因是什么?它还有什么用途?
等待调试器连接。一旦调试器附加,它就会返回,所以如果你想立即开始跟踪,你需要在 waitForDebugger() 调用之后放置一个断点。
该为什么仍然没有答案。
更新:
我发现了此功能的一个用例:当应用程序进程终止后自动重启 Android 应用程序时。当用户在应用程序设置中切换运行时权限时,该进程将被终止。更一般地说,一个应用程序进程被杀死并重新启动,只要...
android.os.Process.killProcess(android.os.Process.myPid());
Run Code Online (Sandbox Code Playgroud)
叫做。
要在进程重新启动后调试应用程序,请编写android.os.Debug.waitForDebugger()
代码,然后将调试器附加到当前进程。
这是此功能的一个用例。
参考资料:
调试服务。
可能相关:
android android-service android-testing android-debug android-developer-api
我最近从eclipse切换到IntelliJ进行android开发(由于更好的团队支持w/projects/modules).但是,当我尝试调试后台服务时,似乎无法做到这一点.有没有人成功地使用intelliJ来调试bg服务?
非常感谢Ben