Zeit messen in Android

  • 4 Antworten
  • Letztes Antwortdatum
H

HeroUser96

Ambitioniertes Mitglied
2
Hallo zusammen,

ich habe folgende frage:

ich möchte in meinem Projekt nach einer bestimmten Zeitspanne ein Ereigniss auslösen. Ich habe das versucht, indem ich in der onCreate() methode mit
System.nanoTime die "Erstellungs" Zeit gespeichert habe und in einem Thread eine Variable immer mit der aktuellen Zeit überspeichere.

Jetzt habe ich versucht, dass da Ereigniss ausgelöst wird, wenn die aktuelle Zeit = der StartZeit + 10000 ist. Allerdings funktioniert das nicht. Ich habe beim debuggen festgestellt, dass die Zeit "springt", also nie gleich der StartZeit + 10000 ist. Wenn ich das aber zu >= ändere, wird das Ereigniss dann immer ausgeführt und das will ich auch nicht.

Kennt jemand eine bessere Methode?
 
A

Anzeige

  • Gerade eben
  • Neu
Stichwort: AlarmManager

einfach mal googlen. Da gibts tausende Beispiele.
 
Ist heute Tag der Timer? Der 3. Thread bei dem es im Endeffekt um das gleiche Thema geht.:rolleyes2:

Nimm einen Handler und postDelayed():

Code:
private Handler myHandler = new Handler();

...

// "Timer" stoppen
myHandler.removeCallbacks(myUpdateTimeTask);

// myHandlerTask mit einer Verzögerung von 100ms starten
myHandler.postDelayed(myUpdateTimeTask, 100);

...

// 
private Runnable myHandlerTask = new Runnable() {
   public void run() {
   
   // Hier Methode ausführen, Ereignis auslösen, usw...   

   }

};

und wenn du in die run() am Ende noch mal ein postDelayed(..) rinpackst hast du nen perfekten TimerTask ersatz:

siehe:
Updating the UI from a Timer | Android Developers
 
10000 Nanosekunden?

Dann wohl eher nen Handler nehmen und postDelayed(Runnable r, delayTime) nehmen.
 
Danke, läuft perfekt :D
 

Ähnliche Themen

ThKildau
Antworten
0
Aufrufe
69
ThKildau
ThKildau
asconsulting
Antworten
5
Aufrufe
191
LonelyGremlin
LonelyGremlin
Katharina1985
Antworten
9
Aufrufe
631
Anz
Anz
M
Antworten
21
Aufrufe
1.818
swa00
swa00
Mr-Fisch
Antworten
5
Aufrufe
1.154
migi01
migi01
Zurück
Oben Unten