2014-06-25 3 views
0

Я пытаюсь добавить метод в свою родительскую активность, из которой все мои действия наследуются. Я хочу, чтобы метод поймал любые ошибки, которые еще не были обработаны, поэтому приложение не сбой. Вместо сбоя он перенаправляется на активность экрана сбоя.Глобальный метод предотвращения сбоя приложения?

Вот что у меня есть на данный момент, но он не работает, приложение зависает, а затем чернеет:

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { 
     @Override 
     public void uncaughtException(Thread paramThread, Throwable paramThrowable) { 
      redirectToFailureScreen(); 
     } 
    }); 
+0

Что находится в вашем экране redirectToFailureScreen? –

+1

Нет такой вещи. Проверяйте приложение и 'try' /' catch' в любом месте, где это может произойти (сеть, диск, память, пользовательский ввод ...) и правильно обрабатывайте эти ошибки. Затем откройте приложение для некоторых обезьян и/или пользователей, чтобы проверить и сломать. Исправьте эти ошибки. Затем повторите. – 323go

ответ

1

неперехваченного обработчик исключений не предназначен для спасения приложения. Завершение в этом обработчике означает, что поток завершается. Обработчик получает уведомление в качестве вежливости для ведения журнала до того, как поток будет убит.

Реализован объектами, которые хотят обрабатывать случаи, когда поток завершается неперехваченным исключением. При таком завершении обработчик уведомляется о завершающей теме и причинной причине. Если нет явного набора обработчиков, тогда группа потоков является обработчиком по умолчанию .

Смежные вопросы