在Android中设置全局未捕获异常处理程序的理想方法

在Android中设置全局未捕获异常处理程序的理想方法

我想为我的Android应用程序中的所有线程设置一个全局未捕获的异常处理程序。所以,在我的Application子类中,我Thread.UncaughtExceptionHandler为未捕获的异常设置了默认处理程序的实现。

Thread.setDefaultUncaughtExceptionHandler(
                new DefaultExceptionHandler(this));

在我的实现中,我试图显示一个AlertDialog显示适当的异常消息。

但是,这似乎不起作用。无论何时,对于任何未处理的线程抛出异常,我都会获得库存操作系统默认对话框(“抱歉!-Application-have-stopped-unexpectedly dialog”)。

为未捕获的异常设置默认处理程序的正确和理想方法是什么?


MM们
浏览 581回答 3
3回答

FFIVE

这应该就是你需要做的。(确保你事后停止进程 - 事情可能处于不确定状态。)要检查的第一件事是Android处理程序是否仍然被调用。可能是您的版本被调用但是致命失败并且system_server在看到进程崩溃时显示通用对话框。在处理程序的顶部添加一些日志消息,看它是否到达那里。从getDefaultUncaughtExceptionHandler打印结果,然后抛出未捕获的异常以导致崩溃。密切关注logcat输出,看看发生了什么。
打开App,查看更多内容
随时随地看视频慕课网APP