Robin E.
- Forum-Beiträge: 227
21.10.2012, 16:20:22 via Website
21.10.2012 16:20:22 via Website
Also ich brauche für meine App einen Timer, der möglichst auf eine Millisekunde genau sein sollte und jede Sekunde ein Label aktualisieren soll. Ich hab mich ein bisschen belesen und hab mich für eine Runnable entschieden.
Gibt es denn einen besseren Weg, um einen vernünftig zählenden Timer zu implementieren? Oder muss ich irgendwas anders machen?
Danke schonmal für eure Tipps!
1Handler mHandler = new Handler();
2TextView v = (TextView) findViewById(R.id.xxx);
3long time = 0;
4
5final Runnable r = new Runnable()
6 {
7 long seconds = 0;
8 long minutes = 0;
9
10 public void run()
11 {
12 time+=1;
13 seconds = time / 1000;
14 minutes = seconds / 60;
15
16 if (minutes < 10){
17 if (seconds <10){
18 v.setText("0" + minutes + ":0" + seconds);
19 }
20 else{
21 v.setText("0" + minutes + ":" + seconds);
22 }
23 }
24 else{
25 if (seconds <10){
26 v.setText(minutes + ":0" + seconds);
27 }
28 else{
29 v.setText(minutes + ":" + seconds);
30 }
31 }
32 mHandler.postDelayed(this, 1);
33 }
34 };
Funktionieren tut es an sich auch, leider stimmen aber die Zeiten nicht. Ich hab schon diverse Varianten durch, aber eine Sekunde in meinem Programm war nie auch nur annährend eine reale Sekunde.2TextView v = (TextView) findViewById(R.id.xxx);
3long time = 0;
4
5final Runnable r = new Runnable()
6 {
7 long seconds = 0;
8 long minutes = 0;
9
10 public void run()
11 {
12 time+=1;
13 seconds = time / 1000;
14 minutes = seconds / 60;
15
16 if (minutes < 10){
17 if (seconds <10){
18 v.setText("0" + minutes + ":0" + seconds);
19 }
20 else{
21 v.setText("0" + minutes + ":" + seconds);
22 }
23 }
24 else{
25 if (seconds <10){
26 v.setText(minutes + ":0" + seconds);
27 }
28 else{
29 v.setText(minutes + ":" + seconds);
30 }
31 }
32 mHandler.postDelayed(this, 1);
33 }
34 };
Gibt es denn einen besseren Weg, um einen vernünftig zählenden Timer zu implementieren? Oder muss ich irgendwas anders machen?
Danke schonmal für eure Tipps!
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.