Как показать диалоговое окно для исключения при остановке остальной части программы потока? - PullRequest
0 голосов
/ 18 сентября 2011

Я продумал ИМХО аккуратный способ обработки проверенных исключений, например:

protected void handleException(Throwable e, int messageResourceId, ExceptionReaction reaction) {...}

, который будет частью BaseActivity приложения (таким образом, будет использоваться во всех видах деятельности).В рамках этого метода я намереваюсь показать диалог с заданной строкой сообщения и кнопкой ОК, а затем сделать что-то, чтобы индивидуально реагировать на Исключение (перезапустить действие, выйти из системы, сбросить базу данных, ...).Тем не менее, диалог запускается в потоке пользовательского интерфейса неблокирующим образом, и Activity, вызвавшая handleException (...) , просто продолжит выполнение, пока отображается диалоговое окно - что отстой, потому что что-то, вероятно, прошлоочень неправильно и, например, может потребоваться перезапуск активности.

Обратите внимание, что поток пользовательского интерфейса не может быть переведен в режим ожидания или ожидания, так как тогда кнопка «ОК» в диалоговом окне не будет работать вообще.

У кого-нибудь есть идеи, как этого добиться?

Ответы [ 2 ]

1 голос
/ 18 сентября 2011

У кого-нибудь есть идеи, как этого добиться?

Поместите свое «сделать что-то, чтобы реагировать индивидуально на Исключение» в обработчике кнопок закрытия диалога, например через1005 *.

0 голосов
/ 18 сентября 2011

Вы пробовали UncaughtExceptionHandler?

См. Этот документ Thread.UncaughtExceptionHandler

Реализовать этот интерфейс и выполнить обработку в обратном вызове uncaughtException(Thread thread, Throwable ex)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...