我想記錄自己的錯誤後故意使應用程序崩潰。處理程序在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