執行我正在寫黑莓秒錶應用(其類似於內置秒錶黑莓)。有一個定時器標籤以MM:SS:T(分,秒,十分之一秒)的格式顯示當前時間。使用TimerTask標籤每100毫秒刷新一次。TimerTask的不以預定間隔
的應用工作得很好,時間爲正確顯示,但是,也有某些時刻計時器標籤不被更新以預定間隔(每100毫秒)。定時器標籤暫停(不包括)了一會兒,繼續計數(同時仍然能正確顯示時間)
我的想法是不執行TimerTask的這個暫停期間更新計時器標籤。你知道爲什麼這款應用會以這種方式行事,以及如何解決它?
以下是更新計時器標籤的主題:
public class ThreadUpdateTime extends Thread
{
private MyMainScreen myMainScreen;
private Timer updateTimerLabelTimer = new Timer();
public ThreadUpdateTime(MyMainScreen parent)
{
myMainScreen=parent;
}
public void run()
{
try {
updateTimerLabelTimer.schedule(new RecordTimer(myMainScreen), TIMER_DELAY, TIMER_INTERVAL);
} catch (Exception e) {
//put alert here
}
}
public void iStop()
{
updateTimerLabelTimer.cancel();
}
}
一個TimerTask:
public class RecordTimer extends TimerTask
{
private MyMainScreen myMainScreen;
public RecordTimer(MyMainScreen parent)
{
myMainScreen=parent;
}
public void run()
{
myMainScreen.iUpdateTimerLabel();
}
}
和iUpdateTimerLabel方法:
public void iUpdateTimerLabel()
{
//calculate : sign, sMin, sSec, sTenth
synchronized(Application.getEventLock())
{
lblSpotTime.setText(sign+sMin+":"+sSec+"."+sTenth+" ");
}
}
建議您發佈您的'TimerTask'的代碼以及將其提交給'Timer'的代碼。 – andersoj 2010-11-03 21:57:39
這可能與計時器無關,特別是。請參閱相關:http://stackoverflow.com/questions/2569468/how-do-i-update-blackberry-ui-items-from-a-thread – andersoj 2010-11-04 00:00:55