安卓计时器倒计时完成

4
我正在尝试将计时器集成到我的白噪音应用程序中。
该应用程序有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 时,我该如何检测并做某些事情(比如停止音乐)?

谢谢大家!


你有任何最新进展吗?你找到解决方案了吗? - undefined
1个回答

0

你必须像这样使用 setOnChronometerTickListener 监听器

chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
          @Override
          public void onChronometerTick(Chronometer chronometer) {
              long time = chronometer.getBase();
              //Use this time for finding minute and seconds
           }
     });

这对你有什么帮助呢? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接