Таймер не останавливается - PullRequest
0 голосов
/ 02 ноября 2011

Хорошо, это раздражает!Я не могу действительно остановить таймер, только приостановить его ... У меня есть функция, которая заставляет 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 раз) останавливает текущий таймер и запускает действительно новый (как в этой функции).

1 Ответ

2 голосов
/ 03 ноября 2011

Просто отмените старый, прежде чем создавать новый.

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();
}
...