Zeit messen in Android

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?
 
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

D
Antworten
23
Aufrufe
2.517
Data2006
D
Muecke1982
Antworten
8
Aufrufe
1.033
Skyhigh
Skyhigh
OnkelLon
Antworten
13
Aufrufe
1.975
OnkelLon
OnkelLon
Zurück
Oben Unten