#java #android
#java #Android
Вопрос:
Я пытаюсь добавить метод в свою родительскую активность, от которого наследуются все мои действия. Я хочу, чтобы метод перехватывал любые ошибки, которые еще не были обработаны, чтобы приложение не зависало. Вместо сбоя он перенаправит на действие экрана сбоя.
Вот что у меня есть на данный момент, но оно не работает, приложение зависает, а затем становится черным:
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread paramThread, Throwable paramThrowable) {
redirectToFailureScreen();
}
});
Комментарии:
1. Что находится в вашем redirectToFailureScreen?
2. Такого не существует. Протестируйте свое приложение и
try
/catch
или любое место, где оно может выйти из строя (сеть, диск, память, пользовательский ввод …), И правильно обработайте эти ошибки. Затем передайте приложение некоторым обезьянам и / или пользователям для тестирования и взлома. Исправьте эти ошибки. Затем повторите.
Ответ №1:
Обработчик неперехваченных исключений не предназначен для спасения приложения. Попадание в этот обработчик означает, что поток завершается. Обработчик получает уведомление в качестве любезности для целей ведения журнала перед завершением потока.
Реализуется объектами, которые хотят обрабатывать случаи, когда поток завершается неперехваченным исключением. После такого завершения обработчик получает уведомление о завершающем потоке и причинном исключении. Если явный обработчик не установлен, то обработчиком по умолчанию является группа потока.