Android 在调试期间防止应用程序不响应
我是Android新手,有一个调试问题。我知道ANR的用途,正常运行应用程序时看不到它们。然而,当我试着调试我的BoradCastereceiver时,我太慢了,并且得到了ANR消息 有没有办法在调试会话期间关闭ANR?我可以使用log语句来查看发生了什么,但这很烦人 编辑:事实上,我不想在LogCat中限制ANR,我想告诉android在调试期间不要抛出ANR。我的意思是允许广播接收器运行时间超过5秒。但我想这是不可能的,相反,我应该委托给一个服务,它可以运行更长的时间,我也可以更容易地调试 提前谢谢Android 在调试期间防止应用程序不响应,android,debugging,android-anr-dialog,Android,Debugging,Android Anr Dialog,我是Android新手,有一个调试问题。我知道ANR的用途,正常运行应用程序时看不到它们。然而,当我试着调试我的BoradCastereceiver时,我太慢了,并且得到了ANR消息 有没有办法在调试会话期间关闭ANR?我可以使用log语句来查看发生了什么,但这很烦人 编辑:事实上,我不想在LogCat中限制ANR,我想告诉android在调试期间不要抛出ANR。我的意思是允许广播接收器运行时间超过5秒。但我想这是不可能的,相反,我应该委托给一个服务,它可以运行更长的时间,我也可以更容易地调试
问候否。此消息是通过Android操作系统处理的,而不是通过您的应用程序,并且无法在模拟器上隐藏它。如果您不想看到它,并且您的
BroadcastReceiver
正确地接收到调用,只是没有运行成功的代码,您可以使用try-catch块,而不是应用程序崩溃,捕获将得到处理,您可以在其中制作祝酒词或任何您想要的内容。进入设置->开发者选项并选中显示所有ANR
这将为后台运行的应用显示“应用程序无响应”对话框。您可以单击对话框中的等待按钮,以防止系统终止进程。请注意,对于在前台运行的应用程序,该对话框将自动打开。对于后台应用,您必须启用此选项 你可能会发现对你的问题有用。要点:
- 使用-w使进程等待,直到附加了调试器。这实际上有助于在onCreate()的断点上停止。附加调试器后,将清除调试标志。下次应用程序以常规方式启动时
- 使用--persistent在每次进程启动时等待调试器
- 使用adb shell am clear调试应用程序您的.app.package撤消--持久