Wie setze ich einen Timer in Android?
Was ist der richtige Weg, um einen timer einstellen in android, um kick-off ein task (eine Funktion, die ich erstellen, das ändert nichts an der UI)?
Verwenden Sie dieses Java-Weg:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Timer.html
Oder gibt es einen besseren Weg in android (android-handler)?
InformationsquelleAutor der Frage n179911 | 2009-12-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standard-Java-Möglichkeit zur Verwendung von Timern über java.util.Timer und java.util.TimerTask funktioniert in Android, aber man sollte sich bewusst sein, dass diese Methode erstellt einen neuen thread.
Können Sie erwägen, die sehr bequem Handler Klasse (android.os.Handler) und senden von Nachrichten an den handler über
sendMessageAtTime(android.os.Message, long)
odersendMessageDelayed(android.os.Message, long)
. Sobald Sie eine Nachricht erhalten, können Sie gewünschte Aktionen. Zweite option wäre eine Runnable Objekt und Zeitplan es über Hf-FunktionenpostAtTime(java.lang.Runnable, long)
oderpostDelayed(java.lang.Runnable, long)
.InformationsquelleAutor der Antwort MannyNS
ja java-timer - verwendet werden kann, aber wie die Frage fragt nach besseren Weg (für mobile). Die erklärt Hier.
Zum Wohle von StackOverflow:
Seit Timer erstellt einen neuen thread, es kann als schwere,
wenn alles, was Sie brauchen, ist zu bekommen, ist ein Anruf zurück, während die Aktivität ausgeführt wird, eine Handler kann verwendet werden in Verbindung mit einem
Runnable:
oder eine Nachricht
on a side note, dieser Ansatz kann verwendet werden, wenn Sie ausführen möchten, ein Stück code im UI-thread aus einem anderen thread.
wenn Sie brauchen, um einen Anruf zurück, auch wenn Ihre Aktivität nicht ausgeführt wird, können Sie dann eine AlarmManager
InformationsquelleAutor der Antwort Samuel
Als ich es gesehen habe, java.util.Timer ist die am häufigsten verwendete für die Umsetzung eines timer.
Für eine sich wiederholende Aufgabe:
Für eine einzelne Ausführung einer Aufgabe:
Aufgabe wird die Methode ausgeführt werden
nach die Zeit, um erste Ausführung
(Intervall die Zeit für die wiederholte Ausführung)
InformationsquelleAutor der Antwort Thys
Wahrscheinlich
Timerconcept
oder
Methode 2 ::
Programm den timer
Fügen Sie eine neue variable int namens Zeit. Legen Sie es auf 0.
Fügen Sie den folgenden code in der onCreate-Funktion MainActivity.java.
Gehen in die run-Methode und fügen Sie den folgenden code.
InformationsquelleAutor der Antwort vkulkarni
Es ist situationsabhängig.
Die Android-Dokumentation empfiehlt, dass Sie verwenden sollten,AlarmManager, registrieren Sie einen Vorsatz ausgelöst wird, in der angegebenen Zeit, wenn Ihre Anwendung möglicherweise nicht ausgeführt werden.
Andernfalls sollten Sie die Verwendung Handler.
InformationsquelleAutor der Antwort Timothy Lee Russell
Ich hoffe, dies ist hilfreich und kann nehmen weniger Aufwand zu implementieren,
Android CountDownTimer-Klasse
z.B.
InformationsquelleAutor der Antwort Gaurav Adurkar
Unsere 1. Klasse
Unsere 2. Klasse
InformationsquelleAutor der Antwort Rizwan Sohaib
Ich bin ein Android-Neuling, aber hier ist die timer-Klasse I erstellt auf der Grundlage der oben genannten Antworten. Es funktioniert für meine Anwendung, aber ich begrüße alle Vorschläge.
Beispiel:
InformationsquelleAutor der Antwort user868020
Ich glaube, der Weg, dies zu tun auf dem android ist, dass Sie benötigen einen hintergrund-Dienst ausgeführt werden. Im hintergrund die Anwendung, erstellen Sie den timer. Wenn der timer "tickt" (der Intervall festgelegt, wie lange Sie warten wollen), starten Sie die Aktivität, die Sie starten möchten.
http://developer.android.com/guide/topics/fundamentals.html (<-- dieser Artikel erläutert die Beziehung zwischen Aktivitäten, services, intents und anderen zentralen Grundlagen der Android-Entwicklung)
InformationsquelleAutor der Antwort Crowe T. Robot
Ich bin mit einem handler und runnable zu erstellen, einen timer. Ich wrapper diese in eine abstrakte Klasse. Nur ableiten/umsetzen und Sie sind gut zu gehen:
Beachten Sie, dass die
handler.postDelayed
wird aufgerufen, bevor der code ausgeführt werden kann - damit wird der timer mehr geschlossen timed als "erwartet". Jedoch in den Fällen, wenn der timer läuft zu Häufig, und die Aufgabe (onTimer()
) ist lang - es gibt wohl überschneidungen. Wenn Sie möchten, um die Zeitmessung zu startenintervalMS
nachdem die Aufgabe fertig ist, verschieben Sie dieonTimer()
Aufruf eine Zeile weiter oben.InformationsquelleAutor der Antwort elcuco
Ich verwendet, um zu verwenden (
Timer
,TimerTask
) sowieHandler
kick off (zeitintensive) Aufgaben in regelmäßigen Abständen. Nun habe ich eingeschaltet, die ein ganzes RxJava. RxJava bietetObservable.timer
ist einfacher, weniger fehleranfällig, hassle-free zu verwenden.InformationsquelleAutor der Antwort Thuy Trinh
Timing-operation, die Sie verwenden sollten,Handler.
Wenn Sie ausführen müssen, um einen hintergrund-Dienst der AlarmManager ist der Weg zu gehen.
InformationsquelleAutor der Antwort robsf