2014-01-13 18 views
0

在开始记录之前,我创建了一个CountDownTimer。代码的一部分:Android中的倒计时问题

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()和吐司显示倒计时。但这不起作用。它显示倒计时,但似乎它每两秒倒计时一次。我必须等待吐司消失前的两倍。代码中有什么错误?

+0

我不认为有什么不对,敬酒可能需要2秒钟才能消失。使用文本视图来显示剩余的当前时间并再次检查。 –

+0

IIRC LENGTH_LONG是5或7秒 – FunkTheMonk

+0

LENGTH_LONG敬酒需要3.5秒钟消失,并且它们被绘制在另一个之上。这是你的问题吗? – laalto

回答

1

Countdown Timer从我在这里读到的问题是敬酒时间,因为它需要两秒多的时间。下一个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代替吐司

+0

mmh,是的,我认为这是问题..我tryied使用textview和它的工作..现在的问题是,textview不会消失并保持:'“秒剩余1”'。我需要“重置”textFinish() –

+0

在这种情况下,你可以尝试像textView.setVisibility(View.GONE) – diazazar