我正在尝试为我的测验应用程序编写计时器。
我已经编码了这个。它每 5 个 secound 更新一次我的问题。我在火力基地有 5 个问题。方法qupdate()正在更新我的按钮和问题文本视图。
如果我不单击任何按钮,问题每 5 次更新一次,25 秒后我将进入结束菜单。
我的问题是:当我按下按钮时,计时器没有重置。 示例:我打开测验,我在 2 次 secounds 后单击了一个按钮,并且在 3 次 secounds 之后我得到了新问题,计时器正在更新我的问题。
当按下按钮时,我如何将计时器重置为 5 secounds,以便我(如果我单击与否)还剩 5 秒。
int delay = 5000; // delay for 5 sec.
int period = 5000; // repeat every sec.
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask()
{
int count = 0;
public void run()
{
qupdate();
count ++;
if(count == 5)
this.cancel();
}
}, delay, period);
}
看起来您需要取消计时器并启动一个新计时器。
因此,在您的点击处理程序中:
timer.cancel();
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
...
}, delay, period);