我正在開發一個應用程序,我展示了倒計時。爲了倒計時,我使用Handler類。一旦倒數計時器達到一定時間,鬧鐘就會關閉。我的問題是下面, 起初我顯示計時器時間04:00:00。一旦到達00:00:00,警報就會熄滅。警報代碼工作正常。但定時器顯示不可靠。它工作正常,直到我保持應用程序打開。如果我關閉應用程序(使用家庭或後退)或再次鎖定該設備並打開應用程序,然後顯示的計時器不正確的(延遲了很多,但還是報警適用於時間)。 (但在相同的情況下它有時非常好)。但每當我平設備到系統到時候一切工作正常檢查登錄日食!!!!!!!處理程序,以顯示倒數計時器是不可靠的
1. I want to know whether I am using the Handler properly or not
2. (or) Is going out of the App or locking the device causing the problem
下面是我的處理程序代碼,
處理器digiHandler;
//方法來初始化時間,並定義處理器
public void initialize(int hourstime,int mintime,int sectime){
hour = hourstime;
min = mintime;
sec = sectime;
digiHandler = new Handler();
handleRunnable = new Runnable(){
public void run(){
updateTimes();
}
};
}
public void startUpdateTheread(){
digiHandler.postDelayed(handleRunnable, UPDATEDELAY);
}
// Method to update the timer times
private void updateTimes(){
timerText = String.format(timerFormat,hour,min,sec);
-------------------------
-------------------------
-- code for incrementing the time ---
--------------------------
--------------------------
--------------------------
startUpdateTheread();
}
請給建議
感謝
編輯: 當我觀察記錄它表明,要倒計時1秒的定時器有時需要1分鐘的時間。日誌是如下,
09-21 21:09:18.965:DEBUG/DigitalTimer(7656):timerText **:4時22分54秒
****long difference here****
09-21 21:10:19.308:DEBUG/DigitalTimer(7656):timerText **:4時22分53秒
..................... .................................................. ........... ........................... .................................................. ..... ............................................ ......................................
09-21 21:10: 23.314:DEBUG/DigitalTimer(7656):timerText **:4時22分49秒
**--long difference here ---**
09-21 21:11:22.604:DEBUG/DigitalTimer(7656):timerText **: 4點22分48秒
它總是在發生。所以我可以排除鎖定/從應用程序出來造成的問題。似乎我需要調整代碼的Handler部分。
爲什麼不使用[CountDownTimer](http://developer.android。com/reference/android/os/CountDownTimer.html) – Zharf
@Zharf - 謝謝你的回答。我會嘗試這個CountDownTimer。請看我的編輯點。 – droidsites