Timer zur Zeitanzeige

P

Peter.Parker

Neues Mitglied
0
Ich rufe einen Timer über
Code:
timer.start();
auf.
Dieser soll die verstrichene Zeit in Minuten und Sekunden anzeigen.
Allerdings toggelt der Timer immer um 2 Sekunden.
Also bspw: 05:45, eine Sekunde später 05:46 und dann sofort 05:47 angezeigt.
Ohne dass eine Sekunde zwischen 5:46 und 5:47 war. Woran kann das liegen?

Code:
CountDownTimer timer = new CountDownTimer(600000,1000) {
             public void onTick(long millisUntilFinished) {
                 sec++;
                 txt_timer.setText( String.format("%02d:%02d",sec/60,sec%60) );
             }
             public void onFinish() {
             }  
            }.start();
 
Naja.. der Timer wird einfach irgendwann mal langsamer oder schneller laufen.

Wenn du in die Doku guckst, dann siehst du, dass die Aufrufe von onTick synchronized sind.
Das heißt die werden immer einer nach dem anderen abgearbeitet.

Wenn jetzt der tick, der zu 5:46 führt aus irgendeinem grund etwas länger gedauert hat wird der nächste tick der schon in der warteschlange steht sofort danach ausgeführt.

Es kann halt passieren, dass setText evtl mal länger dauert.

Sobald deine onTick methode länger dauert als der Intervall ist kann das vorkommen.
Es kann und wird aber auch so sein, dass onTick einfach schon nicht exakt aufgerufen wird. Je nachdem was das Telefon im Hintergrund noch so macht.
 
Danke für die Antwort.
Okay, verstehe und was kann ich da tun? Was wäre eine Lösung die funktioniert?
 

Ähnliche Themen

A
  • AnimaAngelo85
Antworten
1
Aufrufe
332
swa00
swa00
Tiefkuehlpizza
Antworten
9
Aufrufe
929
Tiefkuehlpizza
Tiefkuehlpizza
E
Antworten
2
Aufrufe
775
ekaya999
E
Zurück
Oben Unten