我想记录自己的错误后故意使应用程序崩溃。处理程序在Application.onCreate()中注册:Thread.setDefaultUncaughtExceptionHandler中的应用程序崩溃
// set global exception handler
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, final Throwable ex) {
// unregister
Thread.setDefaultUncaughtExceptionHandler(null);
// do report ...
// crash app -does not work, app is frozen
if (ex instanceof RuntimeException)
throw (RuntimeException) ex;
throw new RuntimeException("Re-throw", ex);
}
但是,我的应用程序冻结而不是与对话框崩溃。如果我没有注册处理程序,我该如何崩溃应用程序?
似乎取消注册应该在匿名类别外 – aim
您期望发生什么?当你“重新抛出”时,你已经消除了任何默认的异常处理,并且你应该期待你的应用在这一点上很难崩溃。 – chrylis
@chrylis正是我想要的 - 但它不会崩溃,它冻结,甚至不显示ANR。 – Flo