Android Chronometer倒计时完成

问题描述 投票:0回答:1

我正在尝试将计时器应用到我的白噪声应用中。

App有4个按钮可设置不同的音乐,还有4个功能按钮:播放/暂停,停止,one_hour和three_hours。最后两个在倒计时模式下运行。

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时,如何检测并制作某些东西(即停止音乐)?

谢谢你们!

java android xml timer countdowntimer
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
           }
     });
© www.soinside.com 2019 - 2024. All rights reserved.