我正在尝试写一个基本上是秒表的黑莓应用程序,并显示单圈时间。首先,我不确定我是否以最佳方式实施秒表功能。我有一个显示'时钟'的LabelField(_myLabel) - 从00:00开始。然后你点击开始按钮,每秒钟_myLabel字段得到更新,自上次更新以来已经过去了多少秒(应该只增加1,但有时会有延迟,并且会跳过一个数字)。我只是想不到一种不同的方式来做到这一点 - 而且我对GUI开发和线程很陌生,所以我想这就是为什么。黑莓秒表的执行
编辑:这是什么叫秒表:当你停止更新单圈时间数据的历史表秒表
class MyTimerTask extends TimerTask {
long currentTime;
long startTime = System.currentTimeMillis();
public void run() {
synchronized (Application.getEventLock()) {
currentTime = System.currentTimeMillis();
long diff = currentTime - startTime;
long min = diff/60000;
long sec = (diff % 60000)/1000;
String minStr = new Long(min).toString();
String secStr = new Long(sec).toString();
if (min < 10)
minStr = "0" + minStr;
if (sec < 10)
secStr = "0" + secStr;
_myLabel.setText(minStr + ":" + secStr);
timerDisplay.deleteAll();
timerDisplay.add(_timerLabel);
}
}
}
总之:
_timer = new Timer();
_timer.schedule(new MyTimerTask(), 250, 250);
这里是TimerTask的。当这个列表变长时,计时器开始降级。如果你尝试滚动,那么它会变得非常糟糕。
有没有更好的方法来实现我的秒表?
您是否每1000个msecs计划一次TimerTask? – Jack 2010-03-08 23:27:46
很抱歉忘记了添加该零件。我会更新信息。 – Michaela 2010-03-09 00:07:26