| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java ME (J2ME) > Показать splash screen |
| Автор: gvozd 29.11.2008, 20:28 | ||
| Здравствуйте. Помогите, пожалуйста, решить такую задачу. Мидлет при запуске генерирует на форме список. При клике на элементе списка открывается canvas с содержимым, но так как canvas довольно долго открывается, в связи со считыванием данных, хотелось бы после клика отображать заставку, чтоб не создавалось впечатление зависшего приложения. Пробовал сделать следующим образом:
Но заставка не отображается, а сразу появляется readCanvas. Подскажите, пожалуйста, как отобразить заставку. |
| Автор: RomkaRomka 2.12.2008, 18:26 | ||
Может поможет: отображать заставку прямо из канваса. Добавить в конвас переключатель состояния и в соответствии состояния отрисовывать нужное.
С уважением, Роман. |
| Автор: eugine_s 2.12.2008, 19:10 | ||||
После вот этого:
нужно усыпить поток, чтобы дать возможность перерисовать экран. т.е.
Добавлено через 10 минут и 36 секунд RomkaRomka, нет, так не получится. Результат будет аналогичный. repaint() - это не гарантированная перерисовка экрана. Это только "галочка" для потока перерисовки экрана (*галочка можно читать как - было бы не плохо перерисовать экран). Но если основной поток занят каким-то "тяжелым" заданием, то поток перерисовки экрана может просто не получить времени для выполнения своего задания. Точнее он получает время для перерисовки экрана, но уже после того как основной поток выполнил задание. Так же можно попробовать после repaint() вызывать serviceRepaint(). Но все же я рекомендовал бы разобраться с приоритетами потоков. |
| Автор: gvozd 2.12.2008, 19:31 |
| Всем спасибо, проблема решена. Сделал проще - класс Loader, в который передаются необходимые данные и отрисовывается сплэш, затем в нем через миллисекунду срабатывает таймер, который вызывает чтение данных и их вывод. |
| Автор: RomkaRomka 2.12.2008, 19:53 |
| Согласен, с repaint() ступил. Есть такая фишка. С уважением, Роман. |