Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

Изменение View в другом потоке
Список форумов
 ->  Разработка для Android


 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
Misanthrope : 1
Новичок

СообщениеФев 14, 2012 17:12 
Ответить с цитатой
Приложение периодически подгружает информацию из сети и обновляет одну из View. Проблема была изначально в том, что делать это в основном потоке приложения нельзя: в Honeycomb вылетает NetworkOnMainThreadException. После того, как я попытался вынести работу с сетью в отдельный тред, то столкнулся с тем, что изменять View из него я не могу:
Код:
E/AndroidRuntime(541): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.


Что посоветуете?
К началу Посмотреть профиль Отправить личное сообщение
ufo_sashok : 20
Новичок

СообщениеФев 14, 2012 21:50 
Ответить с цитатой
runOnUiThread
К началу Посмотреть профиль Отправить личное сообщение
__teoREtik__ : 64
Новичок

СообщениеФев 17, 2012 11:43 
Ответить с цитатой
Воспользуйся либо Handler, который будет обрабатывать сообщение посланное из сетевого потока в него с помощью Handler.sendMessage(), c переданным в него кодом сообщения и объектом, содержащим обновление для View. Создай свой Handler и переопредели в нем handleMessage() где устанавливай View новое содержимое

Или вызови View.runOnUiThread() и определи новый Runnable который будет устанавливать View содержимое, только в этом случае ссылка на View должна быть final.
К началу Посмотреть профиль Отправить личное сообщение
 
Начать новую тему  Ответить на тему
Страница 1 из 1
Список форумов
 -> Разработка для Android


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


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru