CountDownTimer不会停止

时间:2014-11-10 02:34:04

标签: java android arrays xml timer

请我是android的初学者,我试图在我的quizz中添加一个CountDownTimer,CountDownTimer运行良好,当我在时间限制内回答所有问题时,我得到的结果如下: 更正答案:14 错误的答案:16 得分:14/30

如果我没有抓紧时间,我会得到这样的东西: 更正答案:14 错误的答案:0 得分:14/30

在我看来这是正确的,因为在这种情况下答案没有错,但没有答案

但如果碰巧我在时间结束之前回答了所有问题。我得到了我想要的结果但是Count不会停止并继续运行直到0和0表示之后: 更正答案:0 错误的答案:0 得分:0/30

以下是计时器的代码:

mCountDownTimer = new CountDownTimer(90000,1000){

         public void onTick(long millisUntilFinished) {
             textViewtimer.setText("Seconds remaining: " + millisUntilFinished / 1000);
         }

         public void onFinish() {                
             marks = (correct+wrong)-wrong;              
                Intent resultintent = new Intent(getApplicationContext(),
                        ResultsActivity.class);
                startActivity(resultintent);
                mCountDownTimer.cancel();
         }
          }.start();

虽然我也在其他地方调用Intent部分来引导我进入乐谱页面 请任何人给我一个提示或帮助吗?

2 个答案:

答案 0 :(得分:1)

我认为你实施onFinish的逻辑是错误的。在{<>> 您的计时器之后onFinish被调用 您调用了cancel

您应该将mCountDownTimer.cancel();移到最后一个问题(可能),它会自动调用onFinish

在您当前的代码中,如果计时器已完成,您的计时器将被取消 ,因为您在cancel中调用了onFinish

答案 1 :(得分:0)

请使用以下代码。

// Global variable. Put
private boolean isRunning = true;

while(isRunning)
{
    textViewtimer.setText("Seconds remaining: " + millisUntilFinished / 1000);
    if((millisUntilFinished / 1000) <= 0)
        isRunning = false;
}