我是stackoverflow的相对新手。
我在我的 android 应用程序中实现了一个 owne uncaughtException 处理程序。问题是当我的一项活动中发生一个未处理的异常时,方法“uncaughtException”被多次调用。
这是我全班负责处理未捕获的异常:
public class CustomUncaughtExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler {
private UncaughtExceptionHandler defaultUEH;
public CustomUncaughtExceptionHandler(UncaughtExceptionHandler defaultHandler) {
defaultUEH = defaultHandler;
Log.w("cmhandler","setted default UEH");
}
public void uncaughtException(Thread thread, Throwable exception) {
Log.w("cmhandler","uncaughtException");
Helper.Log_e("CustomUncaughtExceptionHandler", "uncaughtException", exception);
defaultUEH.uncaughtException(thread, exception);
}
}
该行Helper.Log_e("CustomUncaughtExceptionHandler", "uncaughtException", exception);
仅将异常保存在文件中,并且没有抛出异常。
我在我的活动中实现了这个类,如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Thread.setDefaultUncaughtExceptionHandler(new CustomUncaughtExceptionHandler(Thread.getDefaultUncaughtExceptionHandler()));
当我运行我的应用程序并在活动的 oncreate 中插入类似的内容时(在上面的代码之后)
String i = null;
i.length();
异常得到正确处理,并且 FC 对话框也弹出。到目前为止一切顺利,但在查看我的日志后,我发现方法 uncaughtException 被多次调用。
编辑:通常该方法被调用 2-6 次,并且来自 defaultUEH 设置的日志仅在日志中出现一次。
还有其他人有这样的行为吗?或者有没有人暗示我做错了什么?
谢谢,最好的问候 schw4ndi