Глобальный метод предотвращения сбоя приложения?

#java #android

#java #Android

Вопрос:

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

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

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

Комментарии:

1. Что находится в вашем redirectToFailureScreen?

2. Такого не существует. Протестируйте свое приложение и try / catch или любое место, где оно может выйти из строя (сеть, диск, память, пользовательский ввод …), И правильно обработайте эти ошибки. Затем передайте приложение некоторым обезьянам и / или пользователям для тестирования и взлома. Исправьте эти ошибки. Затем повторите.

Ответ №1:

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

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