0

CountDownTimer在开始录制之前创建了一个。代码部分:

if(bitRateBoolean && timeBoolean && name) {
             toast = Toast.makeText(getActivity(), "Registration will start in 5 seconds", Toast.LENGTH_SHORT);
                         toast.show();

             new CountDownTimer(5000, 1000) {

                  public void onTick(long millisUntilFinished) {
                      Toast.makeText(getActivity(), "seconds remaining: " + millisUntilFinished / 1000, 
                            Toast.LENGTH_LONG).show();

                  }

                  public void onFinish() {
                          toast.cancel();
                      rec();
                  }
               }.start();             

     }

我希望它rec()在 5 秒后开始,吐司显示倒计时。但这不起作用。它显示倒计时,但似乎每两秒倒计时一次。在吐司消失之前,我必须等两次。代码有问题吗?

4

1 回答 1

1

从我在这里读到的倒数计时器 问题是烤面包时间,因为它需要超过两秒。仅在第一个完成后才调用下一个 onClick。如果您的吐司时间超过 1 秒('Toast.LENGTH_LONG' 它肯定会这样做),那么下一次调用 onTick 将不会在 1 秒之后。

私有静态最终 int LONG_DELAY = 3500; // 3.5 秒
private static final int SHORT_DELAY = 2000; // 2 秒

这些是 LENGTH_LONG 和 LENGTH_SHORT 的 Toast 默认值。
我的建议是使用状态栏通知而不是 Toast

于 2014-01-13T13:27:30.240 回答