【发布时间】:2013-05-09 19:50:37
【问题描述】:
如果我的应用崩溃,它会挂起几秒钟,然后 Android 会告诉我应用崩溃并需要关闭。所以我想用一个通用的方法来捕获我的应用程序中的所有异常:
try {
// ...
} catch(Exception e) {
// ...
}
并创建一个新的Activity,说明应用程序立即崩溃(并且还让用户有机会发送包含错误详细信息的邮件),而不是由于 Android 出现延迟。有没有更好的方法来实现这一点,还是不鼓励这样做?
更新:我使用的是启用了 ART 的 Nexus 5,但我没有注意到我曾经在应用程序崩溃时遇到的延迟(我最初所说的“挂起”)。我认为由于现在一切都是本机代码,因此崩溃会立即发生,同时获取所有崩溃信息。也许 Nexus 5 很快 :) 无论如何,这在未来的 Android 版本中可能不会令人担心(鉴于 ART 将成为 Android L 中的默认运行时)。
【问题讨论】:
-
当崩溃发生时,您的活动被破坏,因此无法自己处理崩溃。
-
@Raghunandan 是的,但是如果由于未处理的异常而发生崩溃,您可以使用通用的捕获所有异常处理程序并防止它完全崩溃。
-
@LoganDam 有什么办法吗?
-
@mattblang 实际上,我已经有一段时间没有碰过我的安卓设备了,工作一直很疯狂。不过可能很快就会再次回到安卓世界。 CRUSADER 的选项看起来就像我读过的书一样。
标签: java android exception-handling