我正在尝试使用计时器创建一些基于时间的事件。下面的代码在启动计时器5秒钟后成功显示了祝酒词,但是我需要在5/10/20秒时显示祝酒词。

我尝试使用if(elapsedTime == 5000 || elapsedTime == 10000),但是当我使用==时,没有烤面包显示。

有任何想法吗?

Chronometer.OnChronometerTickListener mChronoListener = new OnChronometerTickListener() { // listens to journey timer to initiate time based events

    public void onChronometerTick(Chronometer arg0) {

        long elapsedTime = SystemClock.elapsedRealtime() - arg0.getBase();

        if (elapsedTime > 5000)
        {
            Toast.makeText(SafeDrive3Activity.this, "HOUR PASSED",      Toast.LENGTH_LONG).show();

        }

    }
};

最佳答案

尝试这样的操作(如果您希望以后每10秒钟进行一次操作):

Chronometer.OnChronometerTickListener mChronoListener = new OnChronometerTickListener() {
    // listens to journey timer to initiate time based events
    int currentNeededTime = 5000;
    public void onChronometerTick(Chronometer arg0) {

        long elapsedTime = SystemClock.elapsedRealtime() - arg0.getBase();

        if (elapsedTime > currentNeededTime)
        {
            Toast.makeText(SafeDrive3Activity.this, "HOUR PASSED",      Toast.LENGTH_LONG).show();
            currentNeededTime += currentNeededTime == 5000 ? 5000 : 10000;
        }
    }
};

07-27 21:53