【问题标题】:Countdown timer display a toast half time倒数计时器显示吐司半场时间
【发布时间】:2020-08-02 16:35:16
【问题描述】:

我正在尝试实现倒数计时器之类的功能,它会在所选的半分钟内显示一条消息。比如我设置了 6 分钟,当倒计时到 3 分钟时,它会显示一个 toast 然后继续滴答。

没用

我在其他时候问过这个问题,但有人要求我澄清我的问题,所以我希望它会解决。

 // 6 min =360,000 millisecond
final long millis=360000;

new CountDownTimer(millis,1000) {
    @Override
    public void onTick(long millisUntilFinished) {
        long halftime =millis/2;
        if (millisUntilFinished == halftime){
            Toast.makeText(CommentJouerActivity.this, "Halftime sir", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void onFinish() {}
}.start();

【问题讨论】:

    标签: java android-studio countdowntimer android-alarms android-handler


    【解决方案1】:

    嗯。我想我最近遇到了类似的问题。 您将滴答率设置为 1 秒 == 1000 毫秒,但我认为 onTick() 方法可能有一些最小的时间偏移(例如每个滴答声 1 或 2 毫秒)。因此,您可能会错过几毫秒的中场休息时间。

    我对你的想法很少。

    1) 您可以提前计算中场休息时间,因此它不是按每个刻度计算的。并将其从 onTick() 主体中删除。

    final long millis=360000;
    long halftime =millis/2;
    

    2) 您可以检查半场时间,例如半滴答时间:

    if (millisUntilFinished + 500 > halftime && millisUntilFinished - 500 < halftime) {
        Toast.makeText(CommentJouerActivity.this, "Halftime sir", Toast.LENGTH_SHORT).show();
    }
    

    【讨论】:

    • 目前我想不出更好的办法。
    猜你喜欢
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 2014-05-13
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    相关资源
    最近更新 更多