定时器可能尚未初始化?

时间:2017-05-02 13:52:04

标签: java android

public void reverseTimer(int Seconds,final TextView tv,final Button button,final TextView txt2){

    final CountDownTimer CountDownTimer1 = new CountDownTimer(Seconds* 1000+1000, 1000) {

        public void onTick(long millisUntilFinished) {
            int seconds = (int) (millisUntilFinished / 1000);
            int minutes = seconds / 60;
            seconds = seconds % 60;
            tv.setText("Time : " + String.valueOf(minutes)
                    + ":" + String.valueOf(seconds));
        }
        public void onFinish() {
            if(score > highscore)
                sethighscore(txt2);
            tv.setText("Completed");
            Reset(tv,button,txt2);
        }
    }.start();
}

我有一个重置按钮,用于设置“点击”按钮'如果为true并且在按下重置按钮或计时器结束时调用了重置功能,我尝试将以下条件添加到' OnTick':

if(clicked == true)
{
    CountDownTimer1.cancel();
}

但是我得到的错误是它可能没有被初始化我知道它意味着什么我不知道在哪里初始化它以及如何?还是有不同的方法可以阻止它在这个功能之外?

1 个答案:

答案 0 :(得分:0)

您正在创建CountDownTimer的抽象子类。 onTickonFinish中的所有代码都属于该对象 在这些方法中,您可以使用this引用该对象。所以你可以这样做:

this.cancel();

甚至只是:

cancel();