| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java ME (J2ME) > Выход из приложения в Canvas |
| Автор: satellite1977 20.8.2007, 10:09 |
| Привет всем. Как сделать выход из приложения в Canvas? Пытаюсь создать объект главного класса мидлета и использовать его метод destroyApp(), но выскакивает ошибка SecurityExeption - вроде и правильно, так как объект мидлета уже создан а я пытаюсь создать еще один. Тогда как же поступить? Спасибо за внимание ))) class Graf extends Canvas implements CommandListener { public Command CExit; public Graf() { super(); CExit = new Command("Выход", Command.EXIT, 1); } public void paint(Graphics g) { addCommand(CExit); setCommandListener(this); } public void commandAction(Command c, Displayable d) { if (c == CExit) { ???? } } |
| Автор: SatanClaus 20.8.2007, 10:40 | ||
У тебя должен быть примерно такой мидлет
Потом в обработке нажатия клавиши, в канвасе, пишешь Main.getInstance().destroyApp(true); И все... Только в destroyApp(boolean destroy) ты должен закрывать все потоки и все такое... А потом вызывать notifyDestroyed(); |
| Автор: hamsterKSU 20.8.2007, 10:41 |
| а о таких вещах как статические переменные или методы слыхал? в классе мидлета делаешь статическую переменную на него самого и потом обращаешся к ней и вызываешь destroyApp() Добавлено через 22 секунды опередили |
| Автор: SatanClaus 20.8.2007, 10:43 |
| |
| Автор: satellite1977 20.8.2007, 11:31 |
| Спасибо большое. Когда-то я очень хорошо владел Бейсиком (во времена ZX SPECTRUM )))), сейчас пытаюсь овладеть ООП, дается нелегко, потому что привык к простому коду без всяких классов))). Может у кого-то своими вопросами вызываю гнев, но вы уж извините ))) Отдельное спасибо SatanClaus, за то, что привел такой понятный ответ с примером. |
| Автор: W0LF 20.8.2007, 11:49 |
| c WTK идет набор примеров ...:\WTK22\apps\ там нормально много чего описано |
| Автор: math64 23.8.2007, 16:19 | ||||
Если сделать как было предложено и во время игры был звонок то после ответа на звонок и возврата к игре будет создан новый Canvas и игра начнётся сначала (хотя конечно смотря как он написан). Лучше Canvas создать в конструкторе, а startApp() только показывать. Указатель на Midlet можно передать в конструкторе Canvas, тогда его можно использовать в нескольких мидлетах:
Или можно перенести обработку exit в мидлет:
|