Я обрабатываю любые неперехваченные исключения, возникающие в моем приложении, через:
Thread.setDefaultUncaughtExceptionHandler(this);
если это моя активность запуска, реализующая UncaughtExceptionListener. Я отлично обрабатываю исключение и отправляю его на свой сервер журналов, однако мое приложение не заканчивается. Он просто бежит как зомби, пока не будет нажата кнопка «Домой» или «Назад». Как я могу убить процесс после обработки исключения?
Изменить
Вот тестовая и рабочая активность, которая выдает необработанное исключение, которое должно быть перехвачено (потоком) и обработано. Тост никогда не публикуется, и после регистрации исключения процесс становится зомби.
class TestActivity extends Activity implements UncaughtExceptionListener {
@Override public void onCreate(Bundle icicle) {
super.onCreate(icicle);
Thread.setDefaultUncaughtExceptionHandler(this);
throw new RuntimeException("I'm a destuctive booger.");
setContentView(R.layout.activity_test);
}
@Override public void uncaughtException(Thread thread, Throwable toss) {
Log.e(TAG, "An uncaught exception has been recieved.", toss);
Toast.makeText(this, "Big Error", Toast.LENGTH_LONG).show();
}
}