无法在侦听器类中为CountDownTimer实现暂停功能

时间:2014-09-15 04:37:17

标签: android countdowntimer

我正在尝试在侦听器类中使用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;
            }
        }

1 个答案:

答案 0 :(得分:1)

millisUntilFinished - 是一个只能在onTick中访问的方法参数,不能在此方法之外使用。

必须在类实例上调用

cancel(),您尝试将其用作静态方法,但它不是静态的。你应该在你的类中添加类型为CountDownTimer的新字段(比如TimerAlreadyRunning变量),用新的CountDownTimer(180000,1000)初始化它,然后在这个字段上调用cancel方法......

希望这有帮助。