Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > JAVA Micro Edition > Программирование

Программирование Вопросы связанные с программированием в JAVA

Ответ
 
Опции темы
Старый 26.10.2006, 21:09   #1
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
проблема с TimerTask

Сижу ужо целый день мучаюсь и наконецто понял... вернее нашел где ошибка...

дело короче обстоит так: у меня игра, главный цикл висит на TimerTask, система такая, что при выигрыше стадии, нужно отменить выполнение главного цикла и передать управление менеджеру, который загрузит новые параметры (картинки и т.п.) и поновой запустит главный цикл...

но не тут то было, отмененный Sheduler снова не запускается...

пример простой программы:

import java.util.Timer;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class Midlet extends MIDlet {
    
    public static LoopProgram Loop = new LoopProgram();
            
    public static Timer T=null;
    
    public void startApp() {


        T = new Timer();
        T.schedule(Loop, 0, 25 );
        
        
    }
    
    public void pauseApp() {
    }
    
    public void destroyApp(boolean unconditional) {
    }
    
}
ну и сам ТаймерТаск

import java.util.Timer;
import java.util.TimerTask;

public class LoopProgram extends TimerTask {
    
    public static Midlet Main;
    
    int I=0;
    
    int J=0;
    
    public void run() {
        System.out.println("Loop "+I+++" Task "+J);
        
        
        if (I==50) {
            Main.T.cancel();
            Main.T = new Timer();
            Main.T.schedule(Main.Loop, 0, 25 );
            J++;
        }
        
    }
}
если процедура вызвалась 50 раз, то переинициализировать таймер...

получается что ничего не получается (перл но так оно и есть)...


прошу помощи, работоспособная альтернатива тоже приветствуется.
__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 26.10.2006, 22:44   #2
SubZer0
Администратор
 
Аватар для SubZer0
 
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений
(для 996 пользователей)
Re: проблема с TimerTask

альтернатива конено есть, например завести глобальную переменную, и по ней определять выполнять главный цикл или нет, и выключать ее когда нужно...

но вопрос остается в силе, неужели в яве нереально перестартовать ТаймерТаск?

__________________
Как минимум я помог многим (с)
(Offline)
 
Ответить с цитированием
Старый 27.10.2006, 10:31   #3
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Re: проблема с TimerTask

Terminates this timer, discarding any currently scheduled tasks. Does not interfere with a currently executing task (if it exists). Once a timer has been terminated, its execution thread terminates gracefully, and no more tasks may be scheduled on it.

Надо
Main.T = new Timer();
Main.T.schedule(new LoopProgram(), 0, 25 );
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с С++ HAMANN C++ 10 24.12.2009 09:31
Проблема rr333 3D Моделирование 10 07.06.2009 17:08
Проблема в MP Nautilus MidletPascal 4 26.10.2008 05:30
Проблема с MP3 и EAX Maxim1441 2D-программирование 3 29.07.2008 18:29
TimerTask SubZer0 Программирование 8 14.07.2006 10:24


Часовой пояс GMT +4, время: 07:41.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com