Подтвердить что ты не робот

Хронометр reset

Я пытаюсь полностью перезапустить хронометр, и он не работает. Вместо этого он приостанавливается. В основном то, что я пытаюсь сделать, это сделать что-то, пока хронометр отсчитывает до 10. После его завершения мы попросим пользователя попробовать еще раз. В этом случае мы хотим повторить подсчет от 1 до 10 секунд. Но хронометр начинается с паузы, а не начинается 0.

вот код:

_cutOfTime = 10; // constant

при каждом нажатии кнопки делать startRecording()

он должен всегда начинать Хронометр, а не останавливать/приостанавливать его, но он делает обратное

protected void startRecording(){    

this._watch = (Chronometer) findViewById(R.id.chrono);

            if (this._watch != null)
                 this._watch.setOnChronometerTickListener(new OnChronometerTickListener() {

                        @Override
                        public void onChronometerTick(Chronometer chronometer) {
                            long countUp = (SystemClock.elapsedRealtime() - chronometer.getBase()) / 1000;
                            Log.i(_tag, "time now: " + String.valueOf(countUp));

                            if(countUp > _cutOfTime)
                            {
                                Log.i(_tag, "stop recording!!: ");
                                 _watch.stop();
                                stopRecordWav();
                                launchPromptWithResults();
                            }
                            long sec = countUp % 60;

                            String asText = "" + sec;
                            _textView.setText("Recorded: " + asText);
                        }
                    });


            if (_watch != null)
            _watch.start();
}

Есть ли способ reset хронометра, чтобы он не останавливался, а полностью останавливался?

4b9b3361

Ответ 1

Когда я играл с хронометром некоторое время назад, я просто использовал метод setBase(), чтобы установить базу в текущее время непосредственно перед вызовом start(). В зависимости от ваших конкретных потребностей вам может потребоваться добавить некоторую логику вокруг того, следует ли reset использовать хронометр или нет, прежде чем запускать его.

View.OnClickListener mStartButtonListener = new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            mChronometer.setBase(SystemClock.elapsedRealtime());
            mChronometer.start();
        }
    };