Timer - zmiana częstotliwości "tykania"

0

Witam.

Stworzyłem sobie timerek i uruchamiam go

timer.schedule(task,10,timerek);
gdzie timerek jest zmienna o wartosci np 1000;

i teraz po pewnym czasie chciałbym zmienic wartosc zmiennej aby przyspieszyc "tykanie" timerka. Mimo, że wartosc zmiennej zmieniłem to timer tyka bez zmian. Próbowałęm najpierw wyłączyc timerka czyli

timer.cancel();
a następnie uruchomic go ponownie ale napotkałem problem. Mianowicie zmiana zmiennej timerek ma nastąpic automatycznie, wiec metode zmieniajaca wartosc zmiennej timerk umieszczam w metodzie run w klasie dziedziczącej z TimerTask. No ale jezeli tam zatrzymam timer to juz niemoge wywołac

timer.schedule(task,10,timerek);
z nową wartosciazmiennej timerek.

Moje pytanie brzmi.

Jak moge w czasie działania programu przyspieszyć bądź spowolnić timer?

0

ja zrobiłem coś takiego:
Timer timer;
TimerTaskTest old; //class TimerTaskTest extends TimerTask

timer = new Timer();
old=new TimerTaskTest();
timer.schedule(old,3, 1000);

i potem w obsłudze TT w ustalonym czasie:
old.cancel();
timer.schedule(new TimerTaskTest(),1,2000);
czyli kasuje stare ustawienia timera, a ustawiam nowe no i to działało

0

No ja próbowałem coś podobnego ale zatrzymac timerek a potem uruchomic go na nowo. Lecz po zatrzymaniu timera timerek.cancel() reszta kodu będącej w metodzie run w klasie dziedziczacej po TimerTask sie niewykonuje. Sprawdzałem to

timerek.cancel();
System.out.printl("text testowy")
timerek.schedule(task,10,timerek);

ale text juz sie nie wyswietla i timer nieuruchamia sie;/.

Czy ty te operacje co podałeś wykonywałes w metodzie run w klasie po TT?

0

testowałem to na tym:

public class tim {
int count=0;
Timer timer;
TimerTaskTest old;
public tim() {
timer = new Timer();
old=new TimerTaskTest();
timer.schedule(old,3, 1000);
}

class TimerTaskTest extends TimerTask { 
    public void run() { 
    	count++;
    	if(count==5){
    		old.cancel();
    		timer.schedule(new TimerTaskTest(),1,2000);
    	}
    	System.out.println(count); 
    } 
} 
public static void main(String args[]) { 
    new tim(); 
} 

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1