|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
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 |
|
|
|
|
|
|
 |
__teoREtik__ : 64 Новичок
|
Фев 17, 2012 11:43 |
|
|
Воспользуйся либо Handler, который будет обрабатывать сообщение посланное из сетевого потока в него с помощью Handler.sendMessage(), c переданным в него кодом сообщения и объектом, содержащим обновление для View. Создай свой Handler и переопредели в нем handleMessage() где устанавливай View новое содержимое
Или вызови View.runOnUiThread() и определи новый Runnable который будет устанавливать View содержимое, только в этом случае ссылка на View должна быть final. |
|
|
|
 |
|
|
Страница 1 из 1
|
Список форумов
-> Разработка для Android |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|