Показать сообщение отдельно
Старый 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)
 
Ответить с цитированием