![]() |
Re: Is MIDlet Paused :dontknow: ?
А для простого Сименса не прокатит значит?
Может на Java можно какую-то библиотечку слепить для этого? |
Re: Is MIDlet Paused :dontknow: ?
Ооооочень сомневюсь, что такое возможно...
Я еще ни один Сименс, кроме SX1, не видел, чтобы держал мидлеті в фоновом режиме... |
Re: Is MIDlet Paused :dontknow: ?
имеется под симёны патчик интересный.
### называется после установки из любого места открывает главное меню по нажотию 3-х решоток. Жава в этом случае остаётся работать в фоне, но это не то, что нам нужно. |
Re: Is MIDlet Paused :dontknow: ?
По моему в данном случае мидлет уйдет в глухую остановку и не будет работать резидентом...
|
Re: Is MIDlet Paused :dontknow: ?
В случае с патчем ### прога продолжает нормально работать, проверено многими людьми, плеер не перестаёт играть.
Нельзя только запускать другие жава проги, включая зашитые в прошивку (калькулятор, секундомер), а то или свёрнутая вылетит, или вся труба вырубится... |
Re: Is MIDlet Paused :dontknow: ?
Люди! Неужели никто так и не удосужился проверить, как функция IsMidletPaused работает?!
Код:
program PauseTest; Для особо ленивых (которых, судя по всему, тут большинство) и теоретиков (которых тоже, видно, немало) сообщаю результат для Siemens C75 (не самый крутой смартфон :), как понимаете): Во время разговора мидлет работает!!!!!!!!!!! |
Re: Is MIDlet Paused :dontknow: ?
Да на Сименсе вобще эльфы есть. Они делают всё что угодно: от многозадачности до не тормозящего Дэндевского эмулятора.
2 ARV: По твоему коду всё сработало, а у меня не почему-то пашет, короче буду ещё разбираться... |
Re: Is MIDlet Paused :dontknow: ?
Я читал-читал J2ME SDK documentation и нигде не обнаружил упоминания, что в "приостановленном" режиме мидлет "заморожен". Похоже, дело обстоит так:
1. мидлет стартует - вызывается метод StartApp(), который устанавливает свой обработчик команд CommandListener, инициализирует переменные и т.п. (занимает ресурсы, одним словом), а затем вызывается метод run(). Завершение этого метода - конец работы мидлета (я не рассматриваю его). 2. поступает звонок - вызывается метод PauseApp() - паскаль в этом методе просто устанавливает значение переменной МР=-1. А в доке написано, что "мидлет должен освободить занятые ресурсы и т.п." Так вот, никакого освобождения не происходит в паскале! Наверное, если бы это делалось, надо было бы освободить CommandListener, т.е. как я понимаю, отключиться от очереди событий - тогда мидлет действительно перестал бы работать. 3. После того, как метод PauseApp() отработал - нет никаких сведений, что метод run() каким-то образом остановлен - он продолжает крутиться - это подтверждает приведенный мною ранее пример кода. 4. Когда разговор завершен - вызывается метод StartApp() - тот самый, что и при запуске мидлета - паскаль проверяет, создан ли уже экземпляр мидлета (конечно, это ведь не первый запуск) - и сбрасывает переменную МР в 0 (эта переменная и есть результат функции IsMidletPaused). Если кто найдет какие-то упоминания в J2ME SDK о том, что я не прав - пусть меня поправит. А тот факт, что не на всех телефонах мидлеты так себя ведут, я могу объяснить двумя причинами: либо недостаточно качественное тестирование проблемы на других телефонных платформах, либо кривая реализация ява-машины. Последнее косвенно подтверждается качеством программных эмуляторов телефонов - у сименсов они на высоте, а например у самсунга - вообще левые какие-то :(. Будут другие мнения? P.S. Было бы интересно узнать о результатах работы приведенного мнюю кода на разных телефонах - надо же понимать, как работают наши программы! |
Re: Is MIDlet Paused :dontknow: ?
Цитата:
|
Re: Is MIDlet Paused :dontknow: ?
Цитата:
|
Re: Is MIDlet Paused :dontknow: ?
Угу.. Именно так... Звонил себе до посинения...
|
Re: Is MIDlet Paused :dontknow: ?
Сегодня с большим удивлением обнаружил, что мой код всё таки работает. Просто он работает наверное только во время разговора, а во время звучания звонка - стоит. Это единственный вывод, объясняющий мои на блюдения и тесты участников форума (у меня кстати тоже СХ75)
2 ARV: Случайно не знаешь как засунуть в J2me_wtk библиотеки от Сименса? И как их вытащить из Эмулятора? |
Re: Is MIDlet Paused :dontknow: ?
На счет звонка - я тоже пришел к выводу, что пока трубка не снята - IsMidletPaused = false (может, мидлет и остановлен - это не проверить), и только после начала разговора ему сообщается о паузе.
А вот на счет библиотек - не понял, какие именно библиотеки, откуда вытаскивать, куда вставлять и главное - зачем? Поясни. |
Часовой пояс GMT +4, время: 19:26. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot