OnFinish countDownTimer секундомер

У меня есть секундомер, который идет от 15, 25 или 35 секунд до 0 в зависимости от скорости, которую пользователь устанавливает в меню. Секундомер имеет две кнопки, start и stop, по одному методу на каждую. Проблема в том, что когда countDownTimer приходит или проходит через onfinish(), если я останавливаю секундомер или покидаю приложение, и он возвращается в start, его ловят, как если бы это был цикл , Я знаю, что он остается там, потому что в конце я получил MediaPlayer . Этот звук повторяется все время. Я хотел бы знать, как я могу сделать так, чтобы приложение не оставалось в onFinish(), если оно не перезапускается или продолжается.

public void StartCronometro(View v) {
    contando = true;
    cd = new CountDownTimer(tiempo, 1000) {

        public void onTick(long millisUntilFinished) {
            crono.setText("" + millisUntilFinished / 1000);
            tiempo = millisUntilFinished;
        }

        public void onFinish() {
            contando = false;
            play();
            cd.start();
        }

    }.start();
}
1
задан 27.01.2017, 01:52
2 ответа

Проблема, которую я вижу, состоит в том, что ты вновь инициализируешь это каждый раз, когда ты заканчиваешь с нею lГ-nea cd.start(); Из этой формы, ты создаешь один cronГіmetro ново каждый раз, когда ты используешь mГ©todo StartCronometro(View v), которые никогда ты не останавливаешь, потому что ты это возобновляешь снова всегда. DeberГ-схвати снимать эту lГ-nea.

0
ответ дан 24.11.2019, 12:38

Несомненно ты должен снимать cd.start(); mГ©todo onFinish();.

На этом звука, asegГєrate освобождения MediaPlayer, выйдя ее aplicaciГіn, asГ-:

public void onPause(){
    mediaPlayer.release();
    super.onPause();
}

Это deberГ, - чтобы решать проблему.

0
ответ дан 24.11.2019, 12:38