Verwenden timer.scheduleAtFixedRate
public void scheduleAtFixedRate(TimerTask task,
long delay,
long period)
Plant die angegebene Aufgabe für die wiederholte Ausführung mit fester Rate, beginnend nach der angegebenen Verzögerung. Nachfolgende Ausführungen finden in ungefähr regelmäßigen Abständen statt, getrennt durch den angegebenen Zeitraum.
Bei der Ausführung mit fester Rate wird jede Ausführung relativ zur geplanten Ausführungszeit der anfänglichen Ausführung geplant. Wenn eine Ausführung aus irgendeinem Grund verzögert wird (z. B. durch Speicherbereinigung oder andere Hintergrundaktivitäten), werden zwei oder mehr Ausführungen schnell hintereinander ausgeführt, um "aufzuholen". Auf lange Sicht ist die Häufigkeit der Ausführung genau der Kehrwert des angegebenen Zeitraums (vorausgesetzt, die Systemuhr, die Object.wait (long) zugrunde liegt, ist korrekt).
Die Ausführung mit fester Rate eignet sich für wiederkehrende Aktivitäten, die von der absoluten Zeit abhängig sind, z. B. das stündliche Klingeln eines Glockenspiels oder das tägliche Ausführen geplanter Wartungsarbeiten zu einer bestimmten Zeit. Es ist auch für wiederkehrende Aktivitäten geeignet, bei denen die Gesamtzeit für die Ausführung einer festen Anzahl von Ausführungen wichtig ist, z. B. ein Countdown-Timer, der zehn Sekunden lang einmal pro Sekunde tickt. Schließlich ist die Ausführung mit fester Rate geeignet, um mehrere sich wiederholende Zeitgeberaufgaben zu planen, die in Bezug zueinander synchronisiert bleiben müssen.
Parameter:
- Aufgabe - Aufgabe, die geplant werden soll.
- Verzögerung - Verzögerung in Millisekunden, bevor die Aufgabe ausgeführt werden soll.
- Zeitraum - Zeit in Millisekunden zwischen aufeinanderfolgenden Aufgabenausführungen.
Würfe:
- IllegalArgumentException - Wenn die Verzögerung negativ ist oder die Verzögerung + System.currentTimeMillis () negativ ist.
- IllegalStateException - Wenn die Aufgabe bereits geplant oder abgebrochen wurde, wurde der Timer abgebrochen oder der Timer-Thread beendet.