计时器应该 运行 一次但间隔不同
Timer should run One time but with different Intervals
我有一个按钮,我想第一次将计时器设置为 5 秒,它应该在完成 5 秒后执行一些任务。此外,如果用户单击按钮 2 次,它应该启动定时器 10 秒,10 秒后它应该执行特定任务。如果用户点击第 3 次,它应该停止所有 运行ning 计时器。所以我不知道如何实现一次计时器
我搜索的是 this。但是在这个 link 它在特定时间段后不断重复,而我想 运行 一次。
现在我想要什么
- 第一次点击(5 秒)启动计时器,如果用户第二次点击它应该设置新的时间段的计时器,如果用户第三次点击它取消所有计时器。
- 我不想通过睡眠方法使用线程计时器。
- 我想要与 android 5.0 v.
中相机应用程序相同的行为
所以请告诉我如何做到这一点任何代码和源代码将不胜感激。
在您提供的 link 中,如果您再努力一点,就会找到答案。
重复任务:
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();
我有一个按钮,我想第一次将计时器设置为 5 秒,它应该在完成 5 秒后执行一些任务。此外,如果用户单击按钮 2 次,它应该启动定时器 10 秒,10 秒后它应该执行特定任务。如果用户点击第 3 次,它应该停止所有 运行ning 计时器。所以我不知道如何实现一次计时器 我搜索的是 this。但是在这个 link 它在特定时间段后不断重复,而我想 运行 一次。
现在我想要什么
- 第一次点击(5 秒)启动计时器,如果用户第二次点击它应该设置新的时间段的计时器,如果用户第三次点击它取消所有计时器。
- 我不想通过睡眠方法使用线程计时器。
- 我想要与 android 5.0 v. 中相机应用程序相同的行为
所以请告诉我如何做到这一点任何代码和源代码将不胜感激。
在您提供的 link 中,如果您再努力一点,就会找到答案。
重复任务:
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();