У меня проблема.
1. У меня есть два потока: поток «рабочий» и «пользовательский интерфейс».
2. Работник продолжает получать данные с сервера, когда получает уведомление о потоке пользовательского интерфейса.
3. В окне обновления UI отображается сообщение Toast на экране.Шаблон наблюдателя в Android
Шаг 3 является проблемой, так как она говорит:
android.view.ViewRoot $ CalledFromWrongThreadException: Только исходный поток, который создал иерархию вида может коснуться его точки зрения.
Использование mHandler, runOnUIThread замедляет поток пользовательского интерфейса (пользовательский интерфейс отображает веб-просмотр), так как я должен постоянно проверять данные с сервера.
Благодарим за сообщение, Фактически данные продолжают поступать в некоторый промежуток времени от сервера, и снова я должен обновить интерфейс. В этом примере я предполагаю, что doInbackground выполняется только при нажатии кнопки, но в моем случае кто-то (поток) всегда должен быть готов к приему данных с сервера и перейти к пользовательскому интерфейсу, чтобы обновить себя. Тем временем UI sud работает нормально (webview) .... – Placidnick
вы можете вызывать publishProgress каждый раз, когда получаете другую часть данных. См. Обновленный ответ. –
ohhh wow ...... я твой большой фанат :) Konstantin rocks !!! Спасибо. – Placidnick