我正在尝试在我的白噪音应用程序中实现计时器。
应用程序有 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
}
});
关于java - Android Chronometer 倒计时完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55101592/