我尝试让schedule()
方法等待到特定的小时和分钟开始执行任务,但是没有成功因为schedule()
方法不需要几个小时和几分钟作为一个参数,这个方法的替代是什么?我要做几个小时的计划然后当整点到来的时候,检查一下会议记录?如果两者都正确它会开始执行吗?
p。年代为了让事情更容易理解,如何做得更像这个:
计划(新TimerClass (), 所需的小时, 需要分钟) ?
如果您想安排一个特定的时钟时间(而不是从当前时间延迟),这里有一些选项:
- 使用Quartz,如果你这样做足以证明额外的库。Quartz可以很容易地指定时钟时间,并支持调度循环事件。
- 否则,在调度时,计算当前时间和期望时间之间的差值。(使用Calendar类创建时钟时间,转换为日期,并使用getMillis()。)
您不需要这样的硬编码。测试一小时,然后几分钟。就像下面这样安排任务。下面给出的任务将在一小时后执行,每30000ms重复一次。如果你只需要执行一次,那么在第一次执行后取消时间,比如使用t.cancel(),并将小时+分钟转换为毫秒,以放置计划时间
TimerTask scanTask;
final Handler handler = new Handler();
Timer t = new Timer();
scanTask = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
//do your task here
}
});
}};
t.schedule(scanTask, 1*60*60*1000, 30000);