Kann mir jemand sagen, ob es für Android ein Äquivalent für setInterval / setTimeout gibt? Hat jemand ein Beispiel dafür, wie es geht?
java
javascript
android
settimeout
karse23
quelle
quelle
MyActivityName.this.myFunctionOnActivity()
Handler timeout = new Handler(); final Runnable r = new Runnable{...}; timeout.postDelayed(r, 300);
und wenn Sie es abbrechen möchten:timeout.removeCallbacks(r);
setInterval ()
Funktion, die sich alle n Millisekunden wiederholt
Javascript
Ungefähres Java- Äquivalent
setTimeout ()
Funktion, die erst nach n Millisekunden funktioniert
Javascript
Ungefähres Java- Äquivalent
quelle
scheduleAtFixedRate
Wie können Sie für die Methode den Timer innerhalb der Aktivität abbrechen, wenn diese Aktivität beendet ist?Wenn Sie sich keine Sorgen machen, Ihr Telefon aufzuwecken oder Ihre App von den Toten zurückzubringen, versuchen Sie Folgendes:
quelle
Je nachdem, was Sie tatsächlich erreichen möchten, sollten Sie sich die Android-Handler ansehen:
http://developer.android.com/reference/android/os/Handler.html
Wenn Sie zuvor Javascript setTimeout () usw. verwendet haben, um eine Aufgabe zu planen, die in Zukunft ausgeführt werden soll, ist dies die Android-Methode (postDelayed / sendMessageDelayed).
Beachten Sie, dass weder Handler noch Timer ein Android-Telefon aus dem Ruhemodus aktivieren. Mit anderen Worten, wenn Sie planen möchten, dass tatsächlich etwas passiert, obwohl der Bildschirm ausgeschaltet ist / die CPU schläft, müssen Sie auch den AlarmManager überprüfen.
quelle
Ich weiß nicht viel über JavaScript, aber ich denke, Timer könnten das sein, wonach Sie suchen.
http://developer.android.com/reference/java/util/Timer.html
Über den Link:
One-Shot soll zu einem absoluten Zeitpunkt oder nach einer relativen Verzögerung ausgeführt werden. Wiederkehrende Aufgaben werden entweder mit einem festen Zeitraum oder einer festen Rate geplant.
quelle
Die erste Antwort ist definitiv die richtige Antwort und das ist es, worauf ich diese Lambda-Version gestützt habe, deren Syntax viel kürzer ist. Da Runnable nur eine Überschreibungsmethode "run ()" hat, können wir ein Lambda verwenden:
quelle
quelle
Hier ist ein setTimeout-Äquivalent, das vor allem nützlich ist, wenn Sie versuchen, die Benutzeroberfläche nach einer Verzögerung zu aktualisieren.
Wie Sie vielleicht wissen, kann die Aktualisierung der Benutzeroberfläche nur über den UI-Thread erfolgen. AsyncTask erledigt dies für Sie, indem es die onPostExecute-Methode von diesem Thread aus aufruft.
quelle
onProgressUpdate()
kann auch zur Simulation verwendet werdensetInterval()
. 2.AsyncTask
läuft auf einem Thread-Pool (oder nur einem einzelnen Thread), also a. es muss möglicherweise warten, bis ein andererAsyncTask
fertig ist; b . Es wird einen Thread aus dem Pool aufnehmen.Ich habe einen MP3-Player für Android erstellt und wollte die aktuelle Zeit alle 500 ms aktualisieren also habe ich es so gemacht
setInterval
das ruft die gleiche Methode rekursiv auf
quelle