我正在尝试在侦听器类中使用CountDownTimer - 我遇到了尝试使Pause功能正常工作的问题 - 请参阅下面的代码。我在评论中添加了两行,我在编译时遇到错误。
public void StartOrStopTimer(){
if (TimerAlreadyRunning == false){
Toast.makeText(activity, "Start", Toast.LENGTH_SHORT).show();
new CountDownTimer(180000, 1000) {
public void onTick(long millisUntilFinished) {
TimerText.setText("" + millisUntilFinished / 1000);
}
public void onFinish() {
TimerText.setText("done!");
}
}.start();
TimerAlreadyRunning=true;
} else {
Toast.makeText(activity, "Stop", Toast.LENGTH_SHORT).show();
TimerPauseTime = CountDownTimer.millisUntilFinished; //THIS LINE DOESNT WORK - CANT RESOLVE SYMBOL
CountDownTimer.cancel();/// XXX THIS IS THE ERROR - CAN NOT BE REFERENCED FROM STATIC CONTENT
TimerAlreadyRunning=false;
}
}
答案 0 :(得分:1)
millisUntilFinished - 是一个只能在onTick中访问的方法参数,不能在此方法之外使用。
必须在类实例上调用cancel(),您尝试将其用作静态方法,但它不是静态的。你应该在你的类中添加类型为CountDownTimer的新字段(比如TimerAlreadyRunning变量),用新的CountDownTimer(180000,1000)初始化它,然后在这个字段上调用cancel方法......
希望这有帮助。