user5575144
user5575144

Reputation:

Android count down timer shows millisecond

I have a timer that can work properly, but this timer can only show the count down of Hour, minute, and second. i want to show the count down of millisecond too. here is the code of my count down timer:

@TargetApi(Build.VERSION_CODES.GINGERBREAD)
@SuppressLint("NewApi")
public class CounterClass extends CountDownTimer {

    public CounterClass(long millisInFuture, long countDownInterval) {
        super(millisInFuture, countDownInterval);
    }

    @Override
    public void onFinish() {
        textViewTimeC.setText("Time's up");
        Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
        v.vibrate(5000);
    }

    @SuppressLint("NewApi")
    @TargetApi(Build.VERSION_CODES.GINGERBREAD)
    @Override
    public void onTick(long millisUntilFinished) {

        long millis = millisUntilFinished;
        String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
                TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
                TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
        System.out.println(hms);

        textViewTimeC.setText(hms);
    }
}

Upvotes: 0

Views: 580

Answers (1)

Shree Krishna
Shree Krishna

Reputation: 8562

You can get the result by doing this,

   textView.setText(""+String.format("%d : %d : %d: %d",
            TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
            TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)),
            TimeUnit.MILLISECONDS.toMillis(millisUntilFinished) -
                    TimeUnit.SECONDS.toMillis(TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished))));

But I'm certain that you will complain about this, Because as I already told you onTick() is only called in 1 seconds of interval. So that you may either see millisecond not running or you will see only few miner changes in that milliseconds.

Upvotes: 1

Related Questions