我的应用程序有时会停止并显示消息:
应用程序没有响应。你想关闭吗?
我知道UI线程耗费时间是个问题。但是我不知道它造成了什么 - 这个问题可能在1%的运行中显示出来。
对于错误报告我正在使用系统Crashylitcs - 它非常好但是当应用程序以这种方式关闭时没有发现任何错误 - 因为没有什么可以捕获的。
当应用程序崩溃时,可以创建异常吗?或者我怎么能在这种崩溃后重新加载应用程序(这将只是暂时的解决方案,直到我找到真正的问题)。
通常,当应用程序返回到前面时会出现错误 - 但是在“onResume”中没有耗时的功能。
感谢您的帮助。
答案 0 :(得分:1)
您的应用是否已在Google Play上发布? Google Play控制台会记录此类问题。它被称为ANR(应用程序没有响应)。你甚至可以检查那里的线程状态,并确定你的问题。
答案 1 :(得分:1)
ANR-Watchdog(https://github.com/SalomonBrys/ANR-WatchDog)检测到Android ANR(应用程序无响应)错误并引发有意义的异常。它设置了一个“看门狗”计时器,它将检测UI线程何时停止响应。当它发生时,它会引发所有线程堆栈跟踪(主要是第一个)的错误。此外,像Crashlytics这样的崩溃处理程序可以拦截它并按照需要的方式处理它。
答案 2 :(得分:0)
对于你的代码优化,try / catch的内存成本很高,只有在强制使用时才尝试使用。当你有"应用程序没有响应时。你想关闭吗?"可能你做了一个具有高内存成本的procest,比如多重位图等等......所以你必须优化你的代码以减少内存,特别是对于较弱的设备