|
никак не получается alertdialog в потоке из под broadcastreceiver
|
|||
---|---|---|---|
#18+
Добрый день! Есть основное activity, в котором создается broadcastreceiver в mainactivity.oncreate. MainActivity взаимодействует с сервером, который через Intent посылает в broadcastreceiver сообщения. Дело в том, что я в broadcastreceiver взависимости от типа сообщения запускаю отдельный поток, в котором общаюсь с httptransportse с SOAP-сервер. тот присылает мне ответ, и я пытаюсь вывести сообщение в основном потоке MainActivity. Не ругается, но сообщение не видно. Вот примерный код. Пробовал по разному. Результат один - ошибок нет, а сообщение не выводит Даже в логировании Код: 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.
где Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Я уже и runonuithread в потоке пробовал и Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
ошибки нет,но сообщение не кажет (((. но showmesage в логе появляется Помогите новичку в android ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2014, 23:43 |
|
никак не получается alertdialog в потоке из под broadcastreceiver
|
|||
---|---|---|---|
#18+
С английским дружишь? http://stackoverflow.com/questions/4844031/alertdialog-from-within-broadcastreceiver-can-it-be-done Вкратце, чтоб все было красиво и функционально (как-бы сделал я): 1. Алерт вынести в отдельную прозрачную активити (по ссылке есть код). 2. Броадкаст так же вынести в отдельный класс и прописать его в манифесте. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2014, 09:25 |
|
никак не получается alertdialog в потоке из под broadcastreceiver
|
|||
---|---|---|---|
#18+
1. вместо Thread я бы лучше использовал http://developer.android.com/reference/android/os/AsyncTask.html авторЯ уже и runonuithread в потоке пробовал пока загадка для меня, вроде должно сработать было. у меня подобные диалоги существовали. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2014, 09:44 |
|
никак не получается alertdialog в потоке из под broadcastreceiver
|
|||
---|---|---|---|
#18+
wadmanС английским дружишь? http://stackoverflow.com/questions/4844031/alertdialog-from-within-broadcastreceiver-can-it-be-done Вкратце, чтоб все было красиво и функционально (как-бы сделал я): 1. Алерт вынести в отдельную прозрачную активити (по ссылке есть код). 2. Броадкаст так же вынести в отдельный класс и прописать его в манифесте. а не в курсе, почему ошибки нет, а диалог не выводится? Не сталкивались с таким?Ведь скрипт доходит до показа диалога, но ошибки то нет... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2014, 10:30 |
|
никак не получается alertdialog в потоке из под broadcastreceiver
|
|||
---|---|---|---|
#18+
evgen29, в курсе . А Джибс лукавит. ) Receiver LifecycleA BroadcastReceiver object is only valid for the duration of the call to onReceive(Context, Intent). Once your code returns from this function, the system considers the object to be finished and no longer active. This has important repercussions to what you can do in an onReceive(Context, Intent) implementation: anything that requires asynchronous operation is not available, because you will need to return from the function to handle the asynchronous operation, but at that point the BroadcastReceiver is no longer active and thus the system is free to kill its process before the asynchronous operation completes. In particular, you may not show a dialog or bind to a service from within a BroadcastReceiver. For the former, you should instead use the NotificationManager API. For the latter, you can use Context.startService() to send a command to the service. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2014, 10:46 |
|
никак не получается alertdialog в потоке из под broadcastreceiver
|
|||
---|---|---|---|
#18+
То есть ресивер должен максимально быстро отработать, где-то ему дается максимум 10 секунд, где-то - 20. Потом ресивер прибивается, потому никаких диалогов, где придется ожидать реакцию пользователя. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2014, 10:52 |
|
никак не получается alertdialog в потоке из под broadcastreceiver
|
|||
---|---|---|---|
#18+
Простите меня, нашёл ошибку. В общем дело в том, что у меня MainActivity является основной Activity, которая выводит сообщения сервера, обращается к серверу, работает с Service и запускает другие Activity. Так вот, у меня была запущена другая Activity, требующая авторизацию, и при нажатии кнопки ok я не закрывал её через finish(), соответственно диалог создавался в отдельном потоке нормально с контекстом MainActivity, который перекрывался моим AuthActivity - создавался нормально, но был перекрыт. Поэтому всё вышеописанное работает нормально, виновата только моя невнимательность и отсутствие практического опыта. Всем спасибо за ответы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2014, 12:27 |
|
никак не получается alertdialog в потоке из под broadcastreceiver
|
|||
---|---|---|---|
#18+
Все равно странно... evgen29в котором общаюсь с httptransportse с SOAP-сервер Это удаленный сервер? Он может ответить в то время, когда телефон "спит"? Что в таком случае произойдет? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2014, 12:39 |
|
никак не получается alertdialog в потоке из под broadcastreceiver
|
|||
---|---|---|---|
#18+
wadmanВсе равно странно... evgen29в котором общаюсь с httptransportse с SOAP-сервер Это удаленный сервер? Он может ответить в то время, когда телефон "спит"? Что в таком случае произойдет? пока не знаю, этого вопроса не касался, решаю вопросы по ходу создания функционала в рамках разработанной модели взаимодействия. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2014, 12:45 |
|
никак не получается alertdialog в потоке из под broadcastreceiver
|
|||
---|---|---|---|
#18+
evgen29wadmanВсе равно странно... пропущено... Это удаленный сервер? Он может ответить в то время, когда телефон "спит"? Что в таком случае произойдет? пока не знаю, этого вопроса не касался, решаю вопросы по ходу создания функционала в рамках разработанной модели взаимодействия. Попался! Говорю же, сразу делай как правильно. Нужна для этого отдельная активити, у которой выставлены флаги Код: java 1. 2. 3. 4. 5.
И стартовать её с флагами Код: java 1.
из броадкаста. Сообщение/параметры можно передать через intent.putExtra. И будет все по феншую. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2014, 12:49 |
|
|
start [/forum/topic.php?fid=13&fpage=25&tid=1331637]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 266ms |
total: | 392ms |
0 / 0 |