Android CountDownTimer没有取消

时间:2016-05-05 13:02:57

标签: android countdowntimer

我创建了一个倒数计时器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.

enter image description here

cancel()正在被召唤但是倒计时器没有停止。

任何帮助将不胜感激。

1 个答案:

答案 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();