weixin_42341104
weixin_42341104
2009-08-21 20:07

关于java.util.Timer的TimerTask的cancel问题

  • 企业应用

首先看看我的定时器的代码:
public class CleanTimer{
private Timer timer;
/**
* Creates a new instance of CleanTimer
*/
public CleanTimer() {
}

public void StartService(Date delaytime, Long cycletime) { 
    try{ 
        timer = new Timer();            

        timer.scheduleAtFixedRate(new CleanTimerTask(), delaytime, cycletime);            

    } catch(Exception ex) { 
        ex.printStackTrace(); 

    } 
}  

}

public class CleanTimerTask extends TimerTask {
/** Creates a new instance of CleanTimerTask */
public CleanTimerTask() {
}

public void run() {      
    try{ 
        CleanTask.ExecuteCleanFunction();            
    } catch(Exception ex) { 
        ex.printStackTrace(); 
    } 
} 

}
现在有个问题,我的任务是变的,有增有减,增加的时候,我可以new CleanTimer调用StartService()方法添加一个,但是当需要回收掉以前增加的某个TASK的时候,就不知道该怎么做了
Timer 和 TimerTask 都有cancel方法,但是怎么用呀,我怎么才能找到我要cancel掉的Task或者是Timer呢?
看Timer的API中,它的构造方法中有一个Timer(String name)的,说明写的是:创建一个新计时器,其相关的线程具有指定的名称。但是指定名称有说明用呀,我刚开始以为以后可以根据这个名称把所创建的Timer get出来,可以翻到后面的方法中,也没有说是能根据名称找出所创建的方法呀,请教高人,我该怎么做,先谢谢了!

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答