我有一个按钮,我想第一次将计时器设置为5秒,并且在完成5秒后它应该执行一些任务。此外,如果用户单击按钮2次,它应该启动计时器10秒,10秒后它应该执行特定的任务。如果用户点击第三次,它应该停止所有运行的计时器。所以我不知道如何实现计时器一次 我搜索的内容是this。但是在这个链接中它会在特定的时间段后不断重复,而我想要运行一次。
现在我想要什么
所以请告诉我如何执行此任何代码和源代码将不胜感激。
答案 0 :(得分:6)
在您提供的链接中,如果您稍微努力一下,您将找到答案。
重复任务:
new Timer().scheduleAtFixedRate(task, after, interval);
对于单次运行任务:
new Timer().schedule(task, after);
所以你需要做的是保持临时变量以跟踪点击次数,你可以使用第二种方法,如
重复任务:
new Timer()。scheduleAtFixedRate(task,after,interval);
对于单次任务:
new Timer().schedule(task, after * numberOfTimeBtnClked);
您必须在该方法中传递TimerTask
方法而不是任务。
**要更新textview,请使用下面的代码并忘记上面写的任何内容**
public void startTimer() {
//set a new Timer
timer = new Timer();
//initialize the TimerTask's job
initializeTimerTask();
//run in an interval of 1000ms
timer.schedule(timerTask, 0, 1000); //
}
public void initializeTimerTask() {
timerTask = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
timerSince++; //global integer variable with default value 0
if(timerSince == 5 * numberOfBtnClick){
//call your method
timer.cancel;
timerSince = 0;
}else{
//textView.setText(((5 * numberOfBtnClick)-timerSince)+" second left");
}
});
}
};
}
}
在事件开始按钮上单击呼叫:
startTimer();