|
|
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
Пытаюсь пропарсить xml в отделном потоке: ошибок не получаюю но и результата нет. цифры "1234567" отображаются а xml нет. в чём ощибка? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 00:21 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
Наверное, потому что стоило дождаться окончания работы потока, и тогда вывести xml? https://www.google.com/search?q=Android FutureTask ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 08:50 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
http://developer.android.com/reference/android/os/AsyncTask.html http://developer.android.com/guide/components/processes-and-threads.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 08:51 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
Areostar, Timer выполняется один раз с задержкой 100 мс, наверное за такое время нельзя скачать xml. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 08:57 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
0FDAreostar, Timer выполняется один раз с задержкой 100 мс, наверное за такое время нельзя скачать xml. А как мне тогда толовить завершение потока? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 10:14 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
AreostarА как мне тогда толовить завершение потока? Используйте штатные средства для запуска фоновых\асинхронных задач, вместо того рукоблудия что у вас. Ссылки привел выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 10:24 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
Areostar0FDAreostar, Timer выполняется один раз с задержкой 100 мс, наверное за такое время нельзя скачать xml. А как мне тогда толовить завершение потока? Например, путем прикручивания http://developer.android.com/intl/ru/reference/android/os/Handler.html Хотя, я-же советовал прикрутить AsyncTask и чтение XML ]androidannotation. Если есть вопросы, как это сделать, то велкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 10:25 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
wadmanХотя, я-же советовал прикрутить AsyncTask и чтение XML ]androidannotation Промахнулся малость... AsyncTask и чтение XML ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 10:25 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
Areostar0FDAreostar, Timer выполняется один раз с задержкой 100 мс, наверное за такое время нельзя скачать xml. А как мне тогда толовить завершение потока? Смотри javadoc, у Timer есть 3-й параметр период, это если про таймер. А зачем ждать завершение потока, лучше смотри ссылки, которые дал Blazkowicz, особенно AsyncTask. И еще, в твоем MyThread.run, если будет исключение, xml=null и тоже не покажет xml. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 10:26 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
AreostarА как мне тогда толовить завершение потока? Нужно, сначала понять как оно должно работать. "Отловить" завершение фонового потока в UI Thread, не блокируя сам UI Thread нельзя. Поэтому, вполне логично, что действия "по зовершению" выполнения потока, нужно вызывать из самого потока. Но так как, UI нельзя менять в этом потоке, то нужен Callback, который будет работать после завершения вашего потока, но внутри UI потока. Это всё подробно расписано по ссылкам, которые я приваш выше. Если с английским тяжко, ищите аналогичные статьи в рунете. Про андроид их как грязи: https://www.google.com/search?q=многопоточность андроид ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 10:28 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНо так как, UI нельзя менять в этом потоке, то нужен Callback, который будет работать после завершения вашего потока, но внутри UI потока. Это делается через http://developer.android.com/intl/ru/reference/android/app/Activity.html#runOnUiThread(java.lang.Runnable) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 10:30 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
wadmanЭто делается через http://developer.android.com/intl/ru/reference/android/app/Activity.html#runOnUiThread(java.lang.Runnable) Спасибо, кэп. Это и называется callback. Я, в отличие от ТС, документацию читать умею. http://developer.android.com/reference/android/view/View.html#post(java.lang.Runnable) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 10:34 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
Попорядку. Подобные примеры читал пытался использовать но непонимяю следущего: 1)protected Код: java 1. Джаву только начал учить и не понимаю что может озночать ... в параметрах функции 2)Как я понял работу с потоками надо в отдельныйласс выделять? 3)откуда надозапускать поток? Из protected Void doInBackground(String... urls) ? Или ещё откуда? 4) Где и как отслеживать его завершение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 10:59 |
|
||
|
РАбота с потоками
|
|||
|---|---|---|---|
|
#18+
Areostar1)protected Код: java 1. Джаву только начал учить и не понимаю что может озночать ... в параметрах функции varargs http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html синтаксический сахар для возможности указания переменного числа аргументов метода. Areostar2)Как я понял работу с потоками надо в отдельныйласс выделять? И, благодаря синтаксису Java, даже не один класс. Areostar3)откуда надозапускать поток? Из protected Void doInBackground(String... urls) ? Или ещё откуда? По хорошему, не надо запускать поток. Надо взять инструменты, которые это делают за вас. А doInBackground должен вызывать ваш долгоиграющий метод. Что, собственно, следуюет из названия. Areostar4) Где и как отслеживать его завершение Пока вы будете пытаться "отслеживать". У вас ничего не выйдет. Не надо ничего "отслеживать". Надо в конце, или после вашего долгоиграющего метода, вызывать действия, которые вы хотите произвести с результатом: tvInfo.setText(xml); Вы принципиально отказываетесь читать статьи по теме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2014, 11:06 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38691404&tid=2126923]: |
0ms |
get settings: |
7ms |
get forum list: |
23ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 409ms |

| 0 / 0 |
