Blackberry stopwatch implementation

Posted by Michaela on Stack Overflow See other posts from Stack Overflow or by Michaela
Published on 2010-03-08T23:24:31Z Indexed on 2010/03/09 0:21 UTC
Read the original article Hit count: 546

Filed under:
|
|
|
|

I'm trying to write a blackberry app that is basically a stopwatch, and displays lap times. First, I'm not sure I'm implementing the stopwatch functionality in the most optimal way. I have a LabelField (_myLabel) that displays the 'clock' - starting at 00:00. Then you hit the start button and every second the _myLabel field gets updated with how many seconds have past since the last update (should only ever increment by 1, but sometimes there is a delay and it will skip a number). I just can't think of a different way to do it - and I am new to GUI development and threads so I guess that's why.

EDIT: Here is what calls the stopwatch:

_timer = new Timer();
_timer.schedule(new MyTimerTask(), 250, 250);  

And here is the TimerTask:

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);
 }
 }
}

Anyway when you stop the stopwatch it updates a historical table of lap time data. When this list gets long, the timer starts to degrade. If you try to scroll, then it gets really bad.

Is there a better way to implement my stopwatch?

© Stack Overflow or respective owner

Related posts about blackberry

Related posts about gui