Как предотвратить зомбирование моего приложения после обработки неперехваченного исключения?

Я обрабатываю любые неперехваченные исключения, возникающие в моем приложении, через:

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();
    }
}
6
задан ahodder 5 April 2012 в 19:36
поделиться