java计时器计算日期间隔_java – 我可以在不同的时间间隔运行计时器吗?

本文探讨了如何根据数据库中的值动态调整Java TimerTask的延迟时间。通过创建新的Timer实例和TimerTask,每次从数据库获取新的延迟时间后,可以使用schedule方法设置不同的延迟,避免频繁取消和重新创建计时器,提高了代码的灵活性和效率。
摘要由CSDN通过智能技术生成

其实我想问我可以从数据库给定时器延迟的价值吗?

Timer timer = new Timer();

TimerTask timerTask = new TimerTask() {

@Override

public void run() {

runOnUiThread(new Runnable() {

@Override

public void run() {

// whatever

}

}

});

}

};

timer.schedule(timerTask,2000,**myDelay**); //here at my delay

在myDelay,我可以通过数据库给出不同的值吗?或者它必须修复?

最佳答案 如果你要用不同的值一直改变时间,我建议你使用

schedule(TimerTask task, long time)

每次从DB获得新的时间时,只需创建一个新的Timer()

time = getNewTimeFromDB();

createNewTask(time);

....

private void createNewTask(long time) {

Timer timer=new Timer();

TimerTask timerTask=new TimerTask() {

@Override

public void run() {

runOnUiThread(new Runnable() {

@Override

public void run() {

// whatever

}

});

}

};

timer.schedule(timerTask,time);

}

这样做的好处是你不必每次都取消计时器,因为它只能运行一次.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值