|
|
|
Глобальные переменные и разные потоки.
|
|||
|---|---|---|---|
|
#18+
Добрый день! Не ругайте сильно, я еще не очень хорошо знаю Java. Программа для Android. Задача: требуется наличие в программе глобального объекта, содержащего строковый массив с информацией о состоянии программы (логгер). Создаю класс со статическим массивом: Код: 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. Метод add для краткости исключил. Проблема в том, что программа (для Андроид) исполняется в двух WM. Основной поток – GUI и Сервис, так вот похоже переменная logList разная для основного потока и для сервиса. Как решить данную проблему? С Уважением, Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 15:50:09 |
|
||
|
Глобальные переменные и разные потоки.
|
|||
|---|---|---|---|
|
#18+
Для уточнения: судя по отладчику разные части программы(GUI и сервис) выполняются не просто в разных потоках, а к разных VirtualMachine... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 16:00:57 |
|
||
|
Глобальные переменные и разные потоки.
|
|||
|---|---|---|---|
|
#18+
LisichkinДля уточнения: судя по отладчику разные части программы(GUI и сервис) выполняются не просто в разных потоках, а к разных VirtualMachine...для логгинга можно воспользоваться стандартными средствами Андроида. Если уж совсем не подходит, то смотреть на сервисы или интенты (плаваю в терминологии, потому направляю в доку). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 19:17:55 |
|
||
|
Глобальные переменные и разные потоки.
|
|||
|---|---|---|---|
|
#18+
начни с объяснений, нахрена такой лисапед ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 19:54:06 |
|
||
|
Глобальные переменные и разные потоки.
|
|||
|---|---|---|---|
|
#18+
авторначни с объяснений, нахрена такой лисапед Требуется дать возможность конечному пользователю отправлять данные разработчику для анализа. Можно читать данные из LogCat, но это доп. права программе. Спрашивается зачем сначала писать в LogCat а потом читать из него? Если можно перед записью записывать во внутренний буфер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 21:05:59 |
|
||
|
Глобальные переменные и разные потоки.
|
|||
|---|---|---|---|
|
#18+
Что-то не въеду никак.. Гуй и сервис - это два разных приложения или два разных класса одного приложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 21:06:19 |
|
||
|
Глобальные переменные и разные потоки.
|
|||
|---|---|---|---|
|
#18+
Я правильно понимаю, что вам необходимо получить из двух различных потоков одного приложения доступ к общей переменной? Или у вас два независимых приложения (читай - процесса)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 21:15:08 |
|
||
|
Глобальные переменные и разные потоки.
|
|||
|---|---|---|---|
|
#18+
Наверное Android Java и Java это немного разные вещи :( Приложение ОДНО. Но по технологии Google/Dalvik VM внутри одного приложения можно поместить одновременно разные классы, отвечающие и за GUI и за Services и BroadcasrReceivers(Приемники сообщений) В Android есть возможность любому приложению(системному или нет, но при наличии прав) писать в "общий" для системы лог - CatLog. Процедуры Log.d/Log.e/Lod.w и т.д из import android.util.Log; Так вот, писать туда могут все, а чтобы читать, нужны определенные права права ( ну и несколько строк кода) Вот я и подумал, что можно перед вставкой в CatLog записать (нужные только мне данные) в "свой" буфер. ????????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 21:46:38 |
|
||
|
Глобальные переменные и разные потоки.
|
|||
|---|---|---|---|
|
#18+
Описался - писать в LogCat права не нужны, читать - нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 21:47:32 |
|
||
|
Глобальные переменные и разные потоки.
|
|||
|---|---|---|---|
|
#18+
LisichkinНаверное Android Java и Java это немного разные вещи :( Приложение ОДНО. Но по технологии Google/Dalvik VM внутри одного приложения можно поместить одновременно разные классы, отвечающие и за GUI и за Services и BroadcasrReceivers(Приемники сообщений) Что в данном случае вы понимаете по классами? Классы as is, т.е. абстракция множества объектов, отдельные dex-файлы или что-то еще? На дает покоя вот это: LisichkinПроблема в том, что программа (для Андроид) исполняется в двух WM. Основной поток – GUI и Сервис , так вот похоже переменная logList разная для основного потока и для сервиса. Т.е. программы (процессов) - две и они каким-то образом взаимодействуют, или же из одной VM стартует другая VM? Как два класса одного приложения(процесса) могут выполняться под разными экземплярами VM? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2012, 23:38:44 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37633230&tid=2132718]: |
0ms |
get settings: |
20ms |
get forum list: |
23ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
68ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 405ms |
| total: | 634ms |

| 0 / 0 |
