好的,这真令人讨厌! 我无法真正停止计时器,只能暂停它... 我有一个函数,每次调用函数时都会使x成为一个新的计时器。我需要的是,有时会停止计时器并再次启动。问题是,如果我使用取消,它会暂停它,当我调用函数时做一个新的,它实际上继续停止的那个!请帮助我,这样我就可以睡觉了......
public void countdown(){
final TextView textic = (TextView) findViewById(R.id.textView2);
x = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
textic.setText("Seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
textic.setText("Time expired");
idiot();
getfirstquestion();
}
};
x.start();
}
这就是函数,x在开始时作为全局变量被删除。需要的是:当我按下一个按钮(甚至100次)时,让当前的计时器停止,并启动一个真正的计时器(就像在那个功能中一样)。
答案 0 :(得分:2)
在创建新的之前,只需取消旧版本。
public void countdown(){
final TextView textic = (TextView) findViewById(R.id.textView2);
if (x != null) {
x.cancel();
}
x = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
textic.setText("Seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
textic.setText("Time expired");
idiot();
getfirstquestion();
}
};
x.start();
}