Java: Aguarde a conclusão do TimerTask antes de continuar a execução
Estou com um problema irritante. Agora, eu tenho um trecho de código que inicia um segmento, define um cronômetro dentro desse segmento e, em seguida, sai desse segmento e continua com sua vida. Minha intenção aqui era que o programa aguardasse a conclusão do TimerTask antes de continuar com o fluxo de código. No entanto, obviamente, a configuração de um novo TimerTask não pausa a execução para aguardar a execução do cronômetro.
Como configuro isso para que meu código atinja a TimerTask, aguarde a expiração do TimerTask e continue? Eu deveria mesmo estar usando um temporizador em tudo? Eu olhei em todos os lugares para uma solução, mas eu não consigo encontrar um.
timer = new Timer();
Thread t = new Thread(new Runnable(){
boolean isRunning = true;
public void run() {
int delay = 1000;
int period = 1000;
interval = 10;
timerPanel.setText(interval.toString());
//Scheduling the below TimerTask doesn't wait
//for the TimerTask to finish before continuing
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
timerPanel.setText(setInterval().toString());
}
}, delay, period);
System.out.println("Thread done.");
}
});
t.start();
try {
t.join(); //doesn't work as I wanted
} catch (InterruptedException e) {
e.printStackTrace();
}
endTask();
Desde já, obrigado.
EDIT: Desculpe pela confusão sobre a tarefa repetida. Eu preciso que a tarefa se repita porque é uma contagem regressiva que pulsa a cada segundo de 10 a 0. A função setInterval () eventualmente cancela o cronômetro. Aqui está o código relevante:
private final Integer setInterval() {
if (interval == 1)
timer.cancel();
return --interval;
}