Search code examples
androidcountdowntimer

How to get elapsed time from countdown timer to send to the server


I am making an Quiz app where i am showing an Countdowntimer. It is displaying countdowntimer in textfield and also showing progress in progressbar. But on quiz finish i want send time elapsed by the user to the server. How can i get elapsed time?

  countDownTimer = new CountDownTimer(10800000, 1000) {
        @Override
        public void onTick(long millisUntilFinished) {
            i[0]++;
            progressBar.setProgress((int) i[0] *100/(10800000/1000));

             timer.setText(String.format("%d : %d : %d", TimeUnit.MILLISECONDS.toHours(millisUntilFinished),
                     TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished)),
                     TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
        }

        @Override
        public void onFinish() {

            i[0]++;
            progressBar.setProgress(100);

        }
    };

Solution

  • I got idea from @quick learner .

    long elapsed_time;
    
     countDownTimer = new CountDownTimer(10800000, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                i[0]++;
                progressBar.setProgress((int) i[0] *100/(10800000/1000));
    
                 timer.setText(String.format("%d : %d : %d", TimeUnit.MILLISECONDS.toHours(millisUntilFinished),
                         TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished)),
                         TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
    
                 elapsed_time = 10800000-millisUntilFinished;
            }
    
            @Override
            public void onFinish() {
                i[0]++;
                progressBar.setProgress(100);
    
            }
        };