Verzögerung/Timer am Anfang einer Loop

  • Hey,
    ich möchte ganz gerne an den Anfang einer Loop einen Timer stellen (so dass bei jedem Durchlauf am Anfang eine kurze Verzögerung stattfindet). Leider finde ich nur veraltete Funktionen (z.B. thread.Sleep), die zu Fehlern führen und laut Internet nicht mehr wirklich existieren. Wie kann ich sowas am besten machen?


    MfG
    Timer

  • ich schätze dazu muss ich auch eine Schleife erstellen und das dauerhaft abfragen (ob 2s vorbei sind) oder? Das würde doch die App verlangsamen (wenn nicht sogar zwischendurch pausieren) oder?
    Oder wie würdest du das umsetzen?

    Ich habe jetzt selber ne Möglichkeit gefunden. Ich rufe eine Funktion auf. In der Funktion steht folgendes drin:


    Code
    private void dailyTimeLoop() {
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    refreshStates();
                }
            }, 2000);
        }

    Dort wird nach 2s eine neue Funktion aufgerufen (refresehStates). Dort wird die Zeit aktualisiert (+ 1 Tag) und dann wieder dailyTimeLoop aufgerufen. So gehts nun

  • Ok wenn es läuft. Ist auf jedenfall ein neuer thread. Bin mir nicht sicher mit der refreshStates(); Methode denn die ist im thread in der run Methode.
    Sieht eher so aus als ob der thred aller 2 sek läuft und somit deinen Code aller 2 sek ausführt, was am ende auf das selbe raus kommt. Wenn geht gut gemacht.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!