66 / 56 / 6
Регистрация: 28.12.2011
Сообщений: 322
|
||||||
1 | ||||||
Как разобраться с многопоточностью?30.11.2012, 21:55. Показов 1940. Ответов 14
Здравствуйте.
Пытаюсь разобраться с многопоточностью, но что-то не выходит. В качестве примера пробую вывести в дочернем потоке строку в TextView. Пробовал делать по Шилдту не получилось. Вот одна из реализаций:
FATAL EXCEPTION: Demo ?:??: W/?(?): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
0
|
30.11.2012, 21:55 | |
Ответы с готовыми решениями:
14
С многопоточностью разобраться Проблемы с многопоточностью Работа с многопоточностью Проблемы с многопоточностью |
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 29
|
||||||
30.11.2012, 22:41 | 2 | |||||
0
|
66 / 56 / 6
Регистрация: 28.12.2011
Сообщений: 322
|
|
30.11.2012, 23:09 [ТС] | 3 |
Попробовал. Программа падает с той же ошибкой .
0
|
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 29
|
|
30.11.2012, 23:37 | 4 |
Хм, ну судя по коду ошибки изменять TextView можно только с основного потока.
0
|
66 / 56 / 6
Регистрация: 28.12.2011
Сообщений: 322
|
|||||||||||
01.12.2012, 00:22 [ТС] | 5 | ||||||||||
Мне кажется это как-то не правильно, должен же наверное быть способ чтобы вывод был возможен из других потоков. Добавлено через 1 минуту Попробовал немного изменить свой код. В конце основного потока добавил строчку:
0
|
Mobile Developer
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
|
|
01.12.2012, 18:53 | 6 |
если есть необходимость вывести из отдельного потока что то не GUI - используй Handler
Все очень просто, ну или AsyncTask тоже как варинат.
0
|
66 / 56 / 6
Регистрация: 28.12.2011
Сообщений: 322
|
|
04.12.2012, 21:26 [ТС] | 7 |
Сделал с помощью Handler.
У меня есть вопрос. Предположим на форме у меня лежит TextView и два Button`а. При нажатии на одну кнопку создается новый поток и чего-то там делает (например, выводит строку в TextView с задержкой в 20 сек - имитация длительного процесса). Если я буду нажимать, во время его выполнения, на вторую кнопку, будет выполняться код назначенный на нее? Сейчас к меня ничего не происходит, т.е. даже кнопка не нажимается. AsyncTask пока не применял, хочу описанный выше код до ума довести.
0
|
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
|
||||||
05.12.2012, 10:50 | 8 | |||||
Для ваших целей вообще нет надобности создавать отдельный поток. Вам нужно что-то типа этого:
0
|
7 / 7 / 0
Регистрация: 12.10.2012
Сообщений: 51
|
|
05.12.2012, 19:36 | 9 |
Самое простое использовать AsyncTask, единственный минус - максимум 5 потоков
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
05.12.2012, 23:04 | 10 |
постил в другой теме как увеличить количество, поищите...
0
|
66 / 56 / 6
Регистрация: 28.12.2011
Сообщений: 322
|
|
05.12.2012, 23:25 [ТС] | 11 |
0
|
7 / 7 / 0
Регистрация: 12.10.2012
Сообщений: 51
|
|
06.12.2012, 11:44 | 12 |
Прекрасно помню ту тему, это была моя тема! Тот вариант который предложили вы(точней предположили) не работает, именно в том случаи мне пришлось отказаться от AsyncTask, поскольку имелась необходимость большего количества потоков чем 5.
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
06.12.2012, 13:43 | 13 |
если у вас не получилось, это не значит что нельзя это сделать...
0
|
7 / 7 / 0
Регистрация: 12.10.2012
Сообщений: 51
|
|
06.12.2012, 14:24 | 14 |
Согласен! Просто на фоне того, что, перекопав весь интернет, задав вопрос на этом форуме, потратив немало времени экспериментируя разными вариантами, учитывая что далеко не новичок в программировании, и плюс ко всему натыкался на ту же, причем тоже нерешенную проблему на буржуйских форумах, мой ответ я счел более обоснованным, нежели ваше предположение...
0
|
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
|
|
10.12.2012, 03:01 | 15 |
http://dajver.blogspot.com/2012/12/android.html норм туториал, там описание использования сервисов, потоков, фонового выполнения задач
0
|
10.12.2012, 03:01 | |
10.12.2012, 03:01 | |
Помогаю со студенческими работами здесь
15
Сложности с многопоточностью Проблемы с многопоточностью в VB Не могу разобратся с многопоточностью Информация по работе с многопоточностью Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |