1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Zeit messen in Android

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von HeroUser96, 23.11.2010.

  1. HeroUser96, 23.11.2010 #1
    HeroUser96

    HeroUser96 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    53
    Erhaltene Danke:
    2
    Registriert seit:
    15.09.2010
    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?
     
  2. Stefan Baumgartner, 23.11.2010 #2
    Stefan Baumgartner

    Stefan Baumgartner Neuer Benutzer

    Beiträge:
    19
    Erhaltene Danke:
    2
    Registriert seit:
    20.10.2010
    Stichwort: AlarmManager

    einfach mal googlen. Da gibts tausende Beispiele.
     
  3. Scavanger, 23.11.2010 #3
    Scavanger

    Scavanger Junior Mitglied

    Beiträge:
    28
    Erhaltene Danke:
    8
    Registriert seit:
    26.06.2010
    Phone:
    Samsung Galaxy Note 4
    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
     
  4. Fr4gg0r, 23.11.2010 #4
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    10000 Nanosekunden?

    Dann wohl eher nen Handler nehmen und postDelayed(Runnable r, delayTime) nehmen.
     
  5. HeroUser96, 23.11.2010 #5
    HeroUser96

    HeroUser96 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    53
    Erhaltene Danke:
    2
    Registriert seit:
    15.09.2010
    Danke, läuft perfekt :D
     

Diese Seite empfehlen