Java 倒计时赢了';停不下来
请告诉我,我是android的初学者,我正在尝试为我的测验添加一个倒计时,倒计时功能很好,当我在时间限制内回答所有问题时,我得到的结果如下: 更正答案:14 错误答案:16 得分:14/30 如果我没有赶上时间,我会得到这样的结果: 更正答案:14 错误答案:0 得分:14/30 这在我看来是正确的,因为在这种情况下,答案不是错的,而是没有答案的 但如果我恰好在时间结束前回答了所有问题。我得到了我想要的结果,但计数没有停止,并一直运行到0,然后在0显示: 更正答案:0 错误答案:0 得分:0/30 以下是计时器的代码: mCountDownTimer=新的倒计时(90000,1000){ 虽然我也在其他地方调用了意图部分来引导我进入得分页面Java 倒计时赢了';停不下来,java,android,arrays,xml,timer,Java,Android,Arrays,Xml,Timer,请告诉我,我是android的初学者,我正在尝试为我的测验添加一个倒计时,倒计时功能很好,当我在时间限制内回答所有问题时,我得到的结果如下: 更正答案:14 错误答案:16 得分:14/30 如果我没有赶上时间,我会得到这样的结果: 更正答案:14 错误答案:0 得分:14/30 这在我看来是正确的,因为在这种情况下,答案不是错的,而是没有答案的 但如果我恰好在时间结束前回答了所有问题。我得到了我想要的结果,但计数没有停止,并一直运行到0,然后在0显示: 更正答案:0 错误答案:0 得分:0/3
有谁能给我一个提示或帮助吗?我认为你执行
onFinish
的逻辑是错误的。onFinish
在你的计时器完成后被呼叫,或者你呼叫取消
您应该将mCountDownTimer.cancel();
移动到最后一个问题(可能),它将自动调用onFinish
在您当前的代码中,只有当计时器已完成时,您的计时器才会被取消,因为您在onFinish
中调用了cancel
,请使用以下代码
// Global variable. Put
private boolean isRunning = true;
while(isRunning)
{
textViewtimer.setText("Seconds remaining: " + millisUntilFinished / 1000);
if((millisUntilFinished / 1000) <= 0)
isRunning = false;
}
//全局变量。Put
私有布尔值isRunning=true;
同时(正在运行)
{
textViewtimer.setText(“剩余秒数:+millisuntillfinished/1000”);
如果((毫微秒/1000)谢谢你,先生,正如你所说,我刚刚移动了mCountDownTimer.cancel到最后一个问题,现在看来它工作得很好。非常感谢你的代码,但我刚刚移动了mCountDownTimer.cancel到我的最后一个问题,正如Blaze Tama建议的,现在它工作得很好,但非常感谢你,我也会保留你给我的代码
// Global variable. Put
private boolean isRunning = true;
while(isRunning)
{
textViewtimer.setText("Seconds remaining: " + millisUntilFinished / 1000);
if((millisUntilFinished / 1000) <= 0)
isRunning = false;
}