Timer während der Laufzeit aktualisieren

  • Antworten:1
Marvin S.
  • Forum-Beiträge: 10

25.02.2013, 18:14:57 via Website

Hallo Leute,

ich habe eine Frage bezüglich des Timers bzw TimerTask in meiner App.
Ich habe ein kleines Spiel programmiert in dem kleine Bälle auf dem Bildschirm erscheinen.
Dafür benutze ich auch den Timer. Allerdings schaffe ich es nicht den Timer Intervall während der Laufzeit zu verändern.

Ich benutze folgenden Code:
1public void reScheduleTimer(int duration) {
2 Timer timer = new Timer();
3
4 TimerTask timerTask = new TimerTask(){
5 @Override
6 public void run() {
7 createBall();
8 }
9 };
10
11 timer.scheduleAtFixedRate(timerTask, duration,duration);
12 }

Und rufe ihn auf mit
1if (Punkte == 20) {
2 reScheduleTimer(300);
3 }
Allerdings habe ich dann nach einer Zeit mehrere Timer am laufen die den gleichen Task ausführen.
Ich schaffe es leider nicht die Timer zu stoppen und nur einen am laufen zu haben.
Ich hoffe mir kann einer einen Denkanstoß geben :)

Mfg
Marvin

Antworten
Michael H
  • Forum-Beiträge: 127

26.02.2013, 08:34:26 via Website

Hallo Marvin

Soweit ich mich erinnere, kann man einen TimerTask nicht restarten. Habe auch so auf die schnelle keine Methode dafür gefunden. Wieso stoppst du den aktuellen Task nicht einfach und startest einen neuen:

timerTask.cancel();
timerTask = new TimerTask()
....
....

Würde mich interessieren obs so klappt..

Gruss Michi

Antworten