Сброс хронометра

Я пытаюсь полностью перезапустить хронометр, и он не работает. Вместо этого он приостанавливается. В основном то, что я пытаюсь сделать, это сделать что-то, пока хронометр отсчитывает до 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(); } 

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

Solutions Collecting From Web of "Сброс хронометра"

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

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