System.currentTimeMillis () funciona errado

Eu preciso de stopWatch e eu useihttp://www.goldb.org/stopwatchjava.html

Não funcionou bem, então tentei escrever o valor a cada 1000 ms:

stopWatch.start();
HandlerScrollBar.postDelayed(TtScroll,  1000);

private Runnable TtScroll = new Runnable() {
    public void run() {
        long time = stopWatch.getElapsedTime();
        HandlerScrollBar.postDelayed(TtScroll,(long) 1000);
        Log.d(TAG, Long.toString(time));            
    }
};

Eu posso ver o valor do tempo a cada segundo no CatLog e isso é resultado:

O tempo real é máximo + 5ms, mas na Coluna é pelo menos +3 segundos! Como isso é possível? É o mesmo com

new Date().getTime().

Existe alguma classe StopWatch que passará este teste como esperado?

Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion