我不是计时器每2.5秒做一次工作(在程序开始时), 这是使用以下代码。
Timer timer = new Timer();
timer.schedule(new TimerTask() {
// @Override
@Override
public void run() {
here is the code, and i do Speed = Speed-500
}, Speed,Speed);
速度是一个int:
public int Speed=2500;
但问题是计时器的速度保持在2500,而变速速度每次都降低500,因此该部分正在工作。只有计时器不会检查速度是否已更改。
有人可以帮我吗?
答案 0 :(得分:3)
你不能这样做,因为一旦你完成了计划,它将用Timer修复它。
在指定的延迟之后开始,为重复的固定延迟执行安排指定的任务。随后的执行大约以规定的时间间隔进行,并以指定的时间段分隔。
在这种情况下,您可以取消上一个并安排新的TimerTask。
Timer timer = new Timer();
initialize the speed here
loop based on time
timer.schedule(new TimerTask() {
// @Override
@Override
public void run() {
here is the code, and i do Speed = Speed-500
}, Speed,Speed);