Android 在调试期间防止应用程序不响应

Android 在调试期间防止应用程序不响应,android,debugging,android-anr-dialog,Android,Debugging,Android Anr Dialog,我是Android新手,有一个调试问题。我知道ANR的用途,正常运行应用程序时看不到它们。然而,当我试着调试我的BoradCastereceiver时,我太慢了,并且得到了ANR消息 有没有办法在调试会话期间关闭ANR?我可以使用log语句来查看发生了什么,但这很烦人 编辑:事实上,我不想在LogCat中限制ANR,我想告诉android在调试期间不要抛出ANR。我的意思是允许广播接收器运行时间超过5秒。但我想这是不可能的,相反,我应该委托给一个服务,它可以运行更长的时间,我也可以更容易地调试

我是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撤消--持久

我似乎没有明确说明我的意图。我将编辑我原来的帖子。但是谢谢!我一直在想同样的事情,但仍然没有找到解决这个问题的方法。2015年,仍然没有解决方案。。。还是我错过了什么?2017年还是没有解决方案。。。还是我错过了什么D2019仍然没有解决方案。。。还是我错过了什么?2021年还是没有解决方案。。。或者我错过了什么?你知道吗,既然这个选项是什么呢?我真的很喜欢一个8年的问题仍然能带来价值。谢谢添加!