java timerTask定时器的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 03:06:54
public class PickTask
{
private Timer timer;

public PickTask(){
timer = new Timer();
}

private TimerTask task = new TimerTask()
{
public void run(){
boolean fags = false;
Parsetxt pt = new Parsetxt();
pt.runTime();

}
};

public void start(int internal )
{
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,2);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date time = calendar.getTime();
timer = new Timer();
//timer.schedule(task,time,10*1000);
timer.schedule(task,time,internal*60*60*1000); //每天2点开始运行 每隔24小时运行一次
}

这是我写的 ,请高手指教 怎么才能让他凌晨2点是开始运行?
我的隔12个小时会运行 但是2点不运行?
这个是一个定时跑数据的小程序,放在自己的服务器上。

劝你别这么搞,人家把你程序关了,你就运行不了。做了也白坐
你那个internal 传入的时候是多少啊。
scheduleAtFixedRate用这个看看吧。
scheduleAtFixedRate
固定速率执行适用于那些对绝对 时间敏感的重复执行活动,如每小时准点打钟报时,或者在每天的特定时间运行已安排的维护活动。它还适用于那些完成固定次数执行的总计时间很重要的重复活动,如倒计时的计时器,每秒钟滴答一次,共 10 秒钟。最后,固定速率执行适用于安排多次重复执行的计时器任务,这些任务相互之间必须保持同步。
schedule
固定延迟执行适用于那些需要“平稳”运行的重复执行活动。换句话说,它适用于在短期运行中保持频率准确要比在长期运行中更为重要的活动。这包括大多数动画任务,如以固定时间间隔闪烁的光标。这还包括为响应人类活动所执行的固定活动,如在按住键时自动重复输入字符。
api抄来的,半天没看明白有什么区别,楼主自己看下。明白了也给我说声啊 哈哈

。。。启动前自己算好时间 手工设置那个delay

TimerTask只能指定推迟多久执行 不能指定几点开始执行