Android: CountDownTimer überspringt den letzten onTick ()!

Code:

public class SMH extends Activity {  

    public void onCreate(Bundle b) {  
        super.onCreate(b);  
        setContentView(R.layout.main);  

        TextView tv = (TextView) findViewById(R.id.tv);  

        new CountDownTimer(10000, 2000) {  
            public void onTick(long m) {  
               long sec = m/1000+1;  
               tv.append(sec+" seconds remain\n");  
            }  
            public void onFinish() {  
               tv.append("Done!");  
            }  
        }.start();  
   }

Ausgabe:
10 Sekunden bleiben
8 Sekunden bleiben
6 Sekunden bleiben
4 Sekunden bleiben
Fertig!

Problem:

Wie bekomme ich es zeigen "2 Sekunden bleiben"? Die verstrichene Zeit wird in der Tat 10 Sekunden, aber die letzten onTick() nie passiert. Wenn ich den zweiten parameter von 2000 bis 1000, dann ist die Ausgabe:

10 Sekunden bleiben
9 Sekunden bleiben
8 Sekunden bleiben
7 Sekunden bleiben
6 Sekunden bleiben
5 Sekunden bleiben
4 Sekunden bleiben
3 Sekunden bleiben
2 Sekunden bleiben
Fertig!

Du siehst also, es scheint zu überspringen, die letzten onTick () - Aufruf. Und btw, die XML-Datei ist im Grunde der Standard main.xml mit dem TextView zugeordnet die id tv und den text auf "".

InformationsquelleAutor der Frage ProgrammingMakesMeQQ | 2012-01-13

Schreibe einen Kommentar