chronometer 应用程序中的两条 toast 或普通消息(一个接一个)

Two toast or normal messages ( one after another ) in chronometer app

我不太擅长 Java 和 Android,但我想构建一个简单的计时器应用程序。 我创建了 Start、Stop/Pause、Reset 按钮,它可以工作,但我想在固定时间(例如 00:15 秒)显示 message/text(“好”),那么消息必须隐藏,并且新消息必须在 00:28 秒(“超级”)时显示并隐藏。 我正在粘贴 MainActivity.java.

中的部分代码
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(layout.activity_main);
    chronometer = findViewById(id.chronometer);
    chronometer.setFormat("(%m,%s)");
    chronometer.setBase(SystemClock.elapsedRealtime());
    chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
        @Override
        public void onChronometerTick(Chronometer chronometer) {
            if ((SystemClock.elapsedRealtime() - chronometer.getBase()) >= 15000) {

                Toast.makeText(MainActivity.this, "Good!", Toast.LENGTH_SHORT).show();
            }
            if ((SystemClock.elapsedRealtime() - chronometer.getBase()) >= 28000) {

                Toast.makeText(MainActivity.this, "Super!", Toast.LENGTH_SHORT).show();
            }
        }
    });
}

此代码当前在 00:15 秒生成第一条消息,但消息会一直持续到 00:35-6 秒,然后显示第二条消息,但两条消息开始随机显示。

我尝试将 if ((SystemClock.elapsedRealtime() - chronometer.getBase()) >= 15000) 更改为 if ((SystemClock.elapsedRealtime() - chronometer.getBase()) == 15000),但这根本不起作用。

我到处搜索并做了几天的测试,但没有关于如何做的结果。 我也用文本视图测试过,但效果不佳。 如果有人可以帮助我解决如何使用 toast 消息或文本视图或其他方式解决此问题。 非常感谢您。

这是因为您多次显示 toast 消息。每次经过 1500 毫秒后,(SystemClock.elapsedRealtime() - chronometer.getBase()) >= 15000 始终为真。

如果您只想在 15 秒时显示祝酒词,那么您可以找出计时表滴答的秒数并检查它是否等于 15。有很多方法可以做到这一点,但类似于:

((SystemClock.elapsedRealtime() - it.getBase()) / 1000) * 1000 == 15000L