Я пытаюсь внедрить таймер в свое приложение белого шума.
Приложение имеет 4 кнопки для установки различных мелодий и 4 функциональные кнопки: воспроизведение/пауза, остановка, один_час и три_часа. Последние два работают в режиме обратного отсчета.
private Chronometer chronometer;
private boolean running;
private long pauseOffset;
switch (v.getId()) {
case R.id.play_button:
if (choosenAudio.isPlaying()) {
//logic here
pauseChronometer();
break;
}
else {
//logic here
startChronometer();
break;
}
case R.id.stop_button:
//logic here
resetChronometer();
chronometer.setCountDown(false);
chronometer.stop();
break;
case R.id.one_hour:
//logic here
chronometer.setCountDown(true);
chronometer.setBase(SystemClock.elapsedRealtime() + 3600000);
pauseOffset = 0;
chronometer.start();
break;
case R.id.three_hours:
//logic here
chronometer.setCountDown(true);
chronometer.setBase(SystemClock.elapsedRealtime() + 10800000);
pauseOffset = 0;
chronometer.start();
break;
default:
break;
}
Мои методы:
public void startChronometer() {
if (!running) {chronometer.setBase(SystemClock.elapsedRealtime() - pauseOffset);
chronometer.start();
running = true;
}
}
public void pauseChronometer() {
if (running) {
chronometer.stop();
pauseOffset = SystemClock.elapsedRealtime() - chronometer.getBase();
running = false;
}
}
public void resetChronometer() {
chronometer.setBase(SystemClock.elapsedRealtime());
pauseOffset = 0;
}
Мой вопрос:
Как я могу обнаружить и сделать что-то (например, остановить музыку), когда время обратного отсчета достигает 00:00?
Спасибо вам всем!




использовать должен использовать setOnChronometerTickListener слушатель, как это
chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
long time = chronometer.getBase();
//Use this time for finding minute and seconds
}
});
как это помогает?