相关疑难解决方法(0)

为什么要等待调试器然后附加调试器来处理?

有什么意义

android.os.Debug.waitForDebugger();
Run Code Online (Sandbox Code Playgroud)

我知道我们 [有时] 需要使用此函数来调试 a Service,但我的问题是:

  • 为什么我们必须这样做?
  • 为什么存在这种方法?它还有什么其他用途?
  • 将调试器附加到进程是什么意思,为什么我们必须这样做?为什么 aService必须以这种方式调试,而不是 an Activityor BroadcastReceiver

有人会认为在项目中调试任何类型的代码都很简单。除了它不是。Service反正不是为了。

这个特殊程序存在的原因是什么?它还有什么用途?

在此处输入图片说明

等待调试器连接。一旦调试器附加,它就会返回,所以如果你想立即开始跟踪,你需要在 waitForDebugger() 调用之后放置一个断点。

为什么仍然没有答案。

更新

我发现了此功能的一个用例:当应用程序进程终止后自动重启 Android 应用程序时。当用户在应用程序设置中切换运行时权限时,该进程将被终止。更一般地说,一个应用程序进程被杀死并重新启动,只要...

android.os.Process.killProcess(android.os.Process.myPid());
Run Code Online (Sandbox Code Playgroud)

叫做。

要在进程重新启动后调试应用程序,请编写android.os.Debug.waitForDebugger()代码,然后将调试器附加到当前进程。

Android:如何调试应用程序的启动过程

这是此功能的一个用例。

参考资料

调试服务

在 Android Studio 中调试服务的正确方法?.

服务中的断点不起作用

如何调试 Android 后台服务?.

如何调试服务?.

如何附加调试器从第一行开始处理,而无需每次都编译代码

您可以在应用程序打开后附加调试器

可能相关

每次调试运行时禁用辅助功能服务

在 Intellij 中使用 Java 调试器时,“丢帧”是什么意思?

配置设备上的开发人员选项

测试您的服务

强制应用程序从第一个 …

android android-service android-testing android-debug android-developer-api

5
推荐指数
1
解决办法
2181
查看次数

使用intelliJ在android中调试后台服务

我最近从eclipse切换到IntelliJ进行android开发(由于更好的团队支持w/projects/modules).但是,当我尝试调试后台服务时,似乎无法做到这一点.有没有人成功地使用intelliJ来调试bg服务?

非常感谢Ben

service android background intellij-idea

3
推荐指数
1
解决办法
2057
查看次数