Olá Amigos!
Estou com o seguinte problema:
Montei um objeto Timer que dispara uma certa consulta no banco de tempos em tempos.
Isso está funcionando certinho, mas só consigo ativar o Timer, não consigo pará-lo, só fechando a aplicação.
Criei uma classe Reminder, desse jeito, que define o intervalo de cada disparo (1000 milisegundos):
public class Reminder {
Timer timer;
RemindTask remindTask;
private String dataInicio;
private String dataFim;
public Reminder(String dataInicio, String dataFim) {
timer = new Timer();
remindTask = new RemindTask(dataInicio,dataFim);
}
public void start() {
timer.schedule(remindTask,0,1*1000);
}
public void stop() throws InterruptedException {
timer.cancel();
timer.purge();
}
}
Montei uma classe RemindTask que dispara a ação:
public class RemindTask extends TimerTask{
private String dataInicio;
private String dataFim;
public RemindTask(String dataInicio, String dataFim){
}
@Override
public void run() {
System.out.println("Disparo");
}
}
E o meu botão que teria que ligar e desligar o Timer:
private void btServicoActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Reminder reminder = new Reminder(txtDataInicio.getText(),txtDataFim.getText());
if ("Iniciar Envio".equals(btServico.getText())){
btServico.setText("Parar Envio");
reminder.start();
System.out.println("Inicio Timer.");
}else{
btServico.setText("Iniciar Envio");
try {
System.out.println("Fim Timer.");
reminder.stop();
} catch (InterruptedException ex) {
Logger.getLogger(DMonitor.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Alguém poderia me dar alguma ideia de como corrigir isso?
Agradeço a todos por ajudar!