|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.kex.kexdav.util.AdjustableTimer
public class AdjustableTimer
Timer mit einmaliger Ausführung und anpassbarem Delay. Beispiel: Der Timer wird mit 60 Sekunden Delay gestartet, dann triggert er nach 60 Sekunden. Wird nach 5 Sekunden aber ein neuer Delay von 20 Sekunden gesetzt, dann wird der Timer nach weiteren 15 Sekunden triggern (also die angegebenen 20 Sekunden seit dem Zeitpunkt, wo er gestartet wurde). Würde stattdessen nach 20 Sekunden ein Delay von 5 Sekunden gesetzt, wird der Timer sofort getriggert, da die 5 Sekunden seit Aktivierung des Timers bereits vergangen sind.
Der Timer macht keine Vorgaben darüber, in welchem Thread der Task ausgeführt wird. Insbesondere kann bei einem resultierenden Zeitraum<=0 der Task sofort in dem Thread ausgeführt werden, in dem der Konstruktor oder dieadjustDelay(long)
-Methode
ausgeführt wird.
Field Summary | |
---|---|
private boolean |
_finished
|
private long |
_startTime
|
private Runnable |
_task
|
private Timer |
_timer
|
Constructor Summary | |
---|---|
AdjustableTimer(long delay,
Runnable task)
Erstellt einen neuen Timer |
Method Summary | |
---|---|
void |
adjustDelay(long newDelay)
Ändert die Dauer bis zur Ausführung des Tasks |
void |
cancel()
Stoppt den Timer und verhindert, dass der Task in Zukunft durch diesen Timer ausgeführt wird |
private void |
runTask()
Führt den angegebenen Task aus |
private void |
setTrigger(long delay)
Erstellt intern einen neuen Timer |
String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private final long _startTime
private final Runnable _task
private Timer _timer
private boolean _finished
Constructor Detail |
---|
public AdjustableTimer(long delay, Runnable task)
delay
- Dauer in Millisekunden, bis der Task gestartet wird (ab dem Zeitpunkt, wo dieser Konstruktor aufgerufen wird)task
- Aufgabe, die ausgeführt werden sollMethod Detail |
---|
public void adjustDelay(long newDelay)
newDelay
- neue Dauer in ms. Die Dauer wird immer ab dem Initialisierungszeitpunkt des Timers angegeben, ist newDelay bspw. 12 und der Timer läuft
schon 5 Sekunden, werden weitere 7 Sekunden gewartet. Falls diese Wartezeit negativ ist, wird der Task sofort gestartetpublic void cancel()
private void setTrigger(long delay)
delay
- Wartezeitprivate void runTask()
public String toString()
toString
in class Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |