2012-04-04 63 views
0

我正在寫定時器應用程序(就像我們用於烹飪)的android應用程序。我使用了CountDownTimer來減少每秒的剩餘時間。但是,因爲我在線程中很新,所以我不知道計時器有沒有延遲。如何提高Android App中的CountDownTimer延遲?

例如,可以考慮使用CountDownTimer簡單的代碼:

CownDownTimer timer = new CountDownTimer(60 * 1000, 1000) { 
    public void onTick(long millisUntilFinished) { 
     System.out.println(millisUntilFinished); 
    } 
} 

當我運行此,onTick()方法應該跑60次,但事實並非如此。相反,它運行約57次。我發現這是由於延遲。什麼是寫我的計時器應用程序最準確的方法?有什麼建議麼?謝謝。

+1

其實'onTick'是*同步*和不會做下一個節拍,直到正在進行的是完整的。因此,如果您在onTick中做了任何事情,那麼運行它需要一定的時間,並且累積的運行時間會導致延遲到總剔號 – waqaslam 2012-04-04 09:49:00

+0

@Waqas謝謝。這是我錯過的觀點 – 2012-05-06 08:54:54

回答

1
CountDownTimer timer = new CountDownTimer(60*1000, 1000) { 
    public void onTick(long millisUntilFinished) { 
     // TODO Auto-generated method stub 
     Log.e("", "millisUntilFinished"+millisUntilFinished); 
    } 
    @Override 
    public void onFinish() { 
     // TODO Auto-generated method stub 
    } 
}; 
timer.start(); 

我運行此代碼,並在logcat中我得到59項,我認爲1項沒有得到,因爲當你統計定時器的等待1000個Milies(米里斯)的第一也,然後用onTick去()所以代碼工作正常

感謝