倒计时Android中的问题

时间:2014-01-13 13:08:08

标签: java android countdowntimer android-toast

我在开始录制之前创建了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();             

     }

我希望5秒后rec()启动并且toast显示倒计时。但这不起作用。它显示倒计时,但似乎每两秒倒数一次。我必须在吐司消失之前等待两倍的时间。代码中出了什么问题?

1 个答案:

答案 0 :(得分:1)

Countdown Timer从我在这里读到的问题是吐司时间,因为它需要超过两秒钟。只有在第一个onClick完成后才会调用下一个onClick。如果你的吐司花费的时间超过1秒('Toast.LENGTH_LONG'确实如此)那么下一次onTick的调用将不会在1秒之后。

  

private static final int LONG_DELAY = 3500; // 3.5秒
  private static final int SHORT_DELAY = 2000; // 2秒

这些是LENGTH_LONG和LENGTH_SHORT的Toast默认值。 我的建议是使用Status Bar Notifications而不是Toast