2014-01-13 92 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