Ich suche nach einer Möglichkeit, eine Aufgabe nach einiger Zeit zu planen, aber ich muss in der Lage sein, die Aufgabe zu verzögern, wenn etwas passiert. Zum BeispielPlanen einer Aufgabe nach Inaktivität (aktualisierbar)
myMethod() {
some code...
new Timer().schedule(new TimerTask(){
@Override
public void run(){
LOGGER.info("close connexion");
}
},1000);
}
Ich brauche die Aufgabe in "run" neu zu planen, wenn ich in myMethod wieder kommen(). Wie zu tun?
Verschieben Sie es in einer separaten Methode und rufen Sie die Methode auf? – XtremeBaumer
Verwenden Sie einen 'ScheduledExecutorService' anstelle einer' TimerTask'. Sie können die 'ScheduledFuture' verwenden, die Sie von' schedule() 'zurückerhalten, um die Aufgabe abzubrechen und neu zu planen, wann immer Sie sie verzögern möchten. – azurefrog