I'm using a simple `CountDownTimer` and calling the `onTick()` every millisecond:

```
    final int[] i = new int[1];

    CountDownTimer countDownTimer = new CountDownTimer(1000, 1) {
        @Override
        public void onTick(long millisUntilFinished) {
            Log.i("Time left", millisUntilFinished + "");
            i[0]++;
        }

        @Override
        public void onFinish() {
            Log.i("i = ", i[0] + "");
        }
    };

```

The problem is though the timer is finishing-up in the correct time, but the `onTick()` method is not getting called every millisecond. Few of the milliseconds get missing everytime.

I checked it using the logs and found that the value of `i[0]` was 597 at the end, whereas it should be 999, as it gets +1 every time `onTick()` is called. Is there a precision error?