我已经实施了一个ExceptionHandler来阻止应用启动崩溃的活动并且它可以正常工作。 我的问题是它不再显示错误对话框。 这里是ExceptionHandler的代码:
public class MyExceptionHandler implements
java.lang.Thread.UncaughtExceptionHandler {
private final Context myContext;
private final Class<?> myActivityClass;
public MyExceptionHandler(Context context, Class<?> c) {
myContext = context;
myActivityClass = c;
}
public void uncaughtException(Thread thread, Throwable exception) {
StringWriter stackTrace = new StringWriter();
exception.printStackTrace(new PrintWriter(stackTrace));
System.err.println(stackTrace);// You can use LogCat too
Intent intent = new Intent(myContext, myActivityClass);
String s = stackTrace.toString();
//you can use this String to know what caused the exception and in which Activity
intent.putExtra("uncaughtException",
"Exception is: " + stackTrace.toString());
intent.putExtra("stacktrace", s);
myContext.startActivity(intent);
//for restarting the Activity
Process.killProcess(Process.myPid());
System.exit(0);
}
}
在重新启动应用程序之前,有没有人知道如何显示正常的黑色崩溃对话框?
提前致谢!
答案 0 :(得分:0)
我找到了解决方案。 问题是:
Intent intent = new Intent(myContext, myActivityClass);
String s = stackTrace.toString();
//you can use this String to know what caused the exception and in which Activity
intent.putExtra("uncaughtException",
"Exception is: " + stackTrace.toString());
intent.putExtra("stacktrace", s);
myContext.startActivity(intent);
删除startActivity,解决了对话框的问题,仍然按预期重新启动了应用程序。
编辑:
对话框提示但只是因为缺少数据而导致第二次崩溃,所以这个答案不正确......