3

我的应用程序有时会停止并显示以下消息:

应用程序没有响应。你想关闭它吗?

我知道这是在 UI 线程上耗时的问题。但我不知道它是什么原因造成的——这个问题可能出现在所有运行的 1% 中。

对于错误报告,我正在使用系统 Crashylits - 它非常好,但是当应用程序以这种方式关闭时不会捕获任何错误 - 因为没有什么可捕获的。

像这样的应用程序崩溃时可以创建异常吗?或者在这种崩溃后我如何重新加载应用程序(这只是临时解决方案,直到我发现真正的问题是什么)。

通常当应用程序回到前面时会出现错误 - 但在“onResume”中没有耗时的功能。

谢谢你的帮助。

4

3 回答 3

1

您的应用程序是否在 Google Play 上发布?Google Play 控制台会记录此类问题。这称为 ANR(应用程序无响应)。您甚至可以在那里检查线程状态并确定您的问题。

于 2014-03-27T10:56:39.190 回答
1

ANR-Watchdog ( https://github.com/SalomonBrys/ANR-WatchDog ) 检测到 Android ANR (Application Not Responding) 错误并引发有意义的异常。它设置了一个“看门狗”计时器,该计时器将检测 UI 线程何时停止响应。当它发生时,它会引发所有线程堆栈跟踪的错误(首先是主线程)。此外,像 Crashlytics 这样的崩溃处理程序可以拦截它并按照它需要的方式处理它。

于 2016-12-02T14:42:48.963 回答
0

对于您的代码优化 try/catch 有很大的内存成本,请仅在强制使用时尝试使用。此外,当您遇到“应用程序没有响应。您要关闭它吗?” 可能你做了一个内存成本高的过程,比如多位图等等......所以你必须优化你的代码以消耗更少的内存,特别是对于较弱的设备

于 2014-03-27T10:44:18.860 回答