Как отобразить пользовательское сообщение перед принудительным закрытием или появлением сообщения ANR

1

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

или

Можно ли отобразить пользовательское сообщение типа "Подождите..." вместо приложения, не отвечающего на сообщение.

Спасибо

Теги:
android-emulator

2 ответа

2
Лучший ответ

Вы должны следить за тем, чтобы вы обрабатывали любые исключения, которые были выбраны. Это то, что заставляет силу закрывать, неперехваченное исключение. что касается "не отвечающего" сообщения, опять же, это зависит от разработчика. Вам нужно создавать новые потоки и выполнять асинхронные задачи, поэтому обработка не блокирует основной поток, что и работает пользовательский интерфейс. Когда основной поток блокируется, то есть, когда происходит сообщение "не отвечает". Если вы создаете новый поток, вы можете отображать любое сообщение, которое хотите, чтобы пользователь сообщал им, что что-то обрабатывает.

  • 0
    Я понимаю ваше объяснение. Спасибо за ответ Райан.
2

Я добавлю, что Ryan ответит, что вы можете обрабатывать все критические исключения без необходимости переносить большую часть вашего кода в try-catch. Для этого есть красивый метод: Thread.setDefaultUncaughtExceptionHandler. Это в основном полезно для отчетов об ошибках. Чтобы показать сообщение, вы должны установить обработчик в Application.onCreate (вам нужно установить <application> android:name в манифесте в свой собственный класс приложения), сохранить контекст приложения, а затем использовать его для показа уведомление в строке состояния - оно остается после закрытия приложения. Кроме того, чтобы диалоговое окно Force Close появилось вместо просто замораживания после того, как обработчик исключений работал, вы должны вызвать defaultHandler = Thread.getDefaultUncaughtExceptionHandler(); в конструкторе обработчика, а затем в конце public void uncaughtException(...) вызвать defaultHandler.uncaughtException(thread, ex);.

  • 0
    Привет, можешь поделиться куском кода ...
  • 0
    @MohitSharma Здесь вы находитесь: pastebin.com/2bm3dUWE

Ещё вопросы

Сообщество Overcoder
Наверх
Меню