我创建了一个倒数计时器5分钟,但如果用户在2分钟内完成任务,我想停止计时器。
我正在使用布尔标志来检查天气用户是否完成了任务。
如果用户在总时间之前完成了任务,那么我正在呼叫for (int i = arrfinalstoer.count - 1; i > 0; --i)
我的代码
cancel()
public void settimer(final TextView time, long milliseconds) {
new CountDownTimer(milliseconds, 1000) {
public void onTick(long millisUntilFinished) {
time.setText(String.format("%d:%d",
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
AppController.RunningTime = millisUntilFinished;
if (AppController.Stoptimer)
this.cancel();
}
public void onFinish() {
AppController.TimeFinished = true;
}
}.start();
}
是倒计时方法mentioned here.
cancel()
正在被召唤但是倒计时器没有停止。
任何帮助将不胜感激。
答案 0 :(得分:1)
int adsInterval = 3000;
CountDownTimer mTimer = mTimer = new CountDownTimer(adsInterval, 1000) {
@Override
public void onFinish() {
Log.d("Seconds", adsInterval + " second");
// YOUR TASK
}
@Override
public void onTick(long l) {
}
};
mTimer.start();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
}
}, 3000);
开始计时器
mTimer.start();
停止计时器
mTimer.cancel();