2014-02-12 8 views
0

Я получаю ошибкуНевозможно создать обработчик ... в диалоговом окне создания

02-11 21:40:25.326: E/AndroidRuntime(1950): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 

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

+0

можете ли вы показать свой код? –

+0

См. Мой ответ, пожалуйста, он просто описывает, почему вы получаете это RuntimeException. Покажите свой код, чтобы выяснить свой вопрос. – suitianshi

ответ

0

По умолчанию только основной поток (поток пользовательского интерфейса) имеет looper, который вы можете использовать для обработки ваших событий. Это означает, что когда вы создаете дочерний поток (поток, отличный от UI), он не будет иметь looper. Вызывая Looper.prepare, вы создаете новый объект Looper для дочернего потока, и только тогда вы можете получить объект handler. Но я думаю, что это не вы хотите (Looper используется внутри Handler и обычно вам не важно его использование.).

В качестве параметра для конструктора обработчика используется метод getMainLooper. Таким образом, вы используете тот же объект петлителя, что и объект пользовательского интерфейса

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