![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Всем привет.
Столкнулся с такой проблемой на нокиях (7610, 6260): Мидлет выходит в инет и загружает некие данные (xml-файл). В процессе обработки этих данных может потребоваться еще запросить из инета данные (если в xml прописан какой-то url - то нужно загрузить и его тоже). Суть проблемы: первый запрос выполняется (т.е. xml загружается). Если же нужно выполнить еще дополнительные загрузки данных (url из xml-файла), то мидлет начинает выполнять запрос, НО вот тут и происходит непонятное: JVM не выводит "Разрешить выход в инет?" (в настройках безопасности стоит "спрашивать всегда"). И это сообщение появляется только в том случае, если мидлет свернуть (не обязательно разворачивать сразу, так как иногда даже сразу после сворачивания выводится окно "Разрешить выход в инет?"). После этого мидлет получает из инета нужные данные. Загрузкой данных из инета заниманиет отдельный класс в отдельном потоке. Кто сталкивался, из-за чего такое может происходить? На других телефонах работает нормально (Nokia s60 3ed, SE). |
|||
|
||||
W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
мож в эту сторону глянуть?
Это сообщение отредактировал(а) W0LF - 3.12.2008, 17:24 -------------------- iOS developer |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
W0LF, спасибо. Но нет, такое не подходит.
Проблему решил. ![]() Решение: Приоритеты потоков: когда первый запрос делался он выполнялся в потоке с нормальным приоритетом, когда же последующие - они выполнялись с MIN_PRIORIRY. |
|||
|
||||
W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
хм.. у меня такое было, но было из-за того, что проскакивало в одно соединение два запроса. а вот насчет приоритета потоков - очень странно, как влияет приоритет? чет не совсем догнал..
-------------------- iOS developer |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Попробую объяснить...
Есть класс Manager - содержит загруженную Модель (из xml файла строится модель). Этих моделей может быть не одна, а несколько, поэтому Manager содержит стек этих моделей. Когда требуется загрузить новый xml, Manager получает об этом сообщение и инициализирует загрузку данных из инета, т.е. обращается к InetLoader-y и ожидает от него ответа. InetLoader стартует новый поток, который загружает данные. По окончанию загрузки InetLoader информирует Manager о окончании загрузки. Manager полученные данные пересылает XmlParser-y, который из этих данных(из xml) формирует Модель. Manager добавляет в стек новую Модель. Но модель уже сама может обнаружить, что у нее не все данные загружены. В таком случае Модель создает у себя новый поток, который в том числе обращается к InetLoader(он тоже создаст у себя поток) за нужными данными. И эта схема плохо работала. Т.е возможно два варианта работы: 1) Manager -> InetLoader Manager инициализирует загрузку данных и ожидает прихода данных от InetLoader. 2) Manager -> Model -> InetLoader В этом случае у потока, который создавался в Model был низкий приоритет и с этим была связана проблема. Но я все равно не понимаю, как может влиять сворачивание мидлета на приоритеты. P.S. наверное намного понятнее будет если сказать, что xml - это на самом деле html-страница (не совсем html, но суть где-то такая же). Из этой xml-ки формируется Модель (текст, ссылки и т.д.). А дополнительные ссылки - это картинки. Добавлено через 1 минуту и 11 секунд P.P.S. Перечитал еще раз - плохо объяснил. Но лучше без кода наверное не смогу объяснить. А код выложить не могу. |
|||
|
||||
W0LF |
|
|||
![]() alexander lonsky ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1164 Регистрация: 9.2.2006 Где: Ukraine.Dnepropet rovsk Репутация: 19 Всего: 20 |
ога , я тож что-то перечитал и ниасоба понил
![]() -------------------- iOS developer |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |