定时器Timer().schedule的预期时间问题
Timer().schedule(任务类,程序开始后的延时,周期)
Timer().schedule(任务类,第一次执行的时间点,周期)
目前我需要用第二种,定时12:00:00执行一次调度,间隔一天
但是会遇到一个情况
假如我的程序13:05才启动
那么启动后会立即执行调度,且今后自动执行都会在13:05发生
请问我该如何做修改,保证实现以下两个需求?
1)若程序启动时,当前时间大于12:00:00,立即执行一次
2)今后的自动调度都在12:00:00发生
我现在做了时间比较,在将12:00:00加入了时间,只能保证2),却无法保证1)
------解决方案--------------------不就加个if else吗?
------解决方案--------------------Timer().scheduleAtFixedRate(TimerTask task,Date time,long period)
这个应该是可以的
------解决方案--------------------用两个定时器timer1和timer2,一个定时任务task。
若程序启动时,当前时间大于12:00:00,立即执行一次,此定时器延迟为0 ,可以立刻执行,且无周期,只执行一次,schedule(task,0);
今后的自动调度都在12:00:00发生。执行定时器2,它的首次执行时间,可以设置在第二天。
------解决方案--------------------同意楼上的!
------解决方案------------------------------同上
------解决方案--------------------将周期改为一分钟,然后再在执行的任务代码里面去判断当前时间是不是12点。
------解决方案--------------------同意楼楼上的!
------解决方案--------------------Timer().scheduleAtFixedRate(TimerTask task,Date time,long period)
这个能保证在固定点运行
------解决方案--------------------就5L那样做吧,就是个if-else问题