Как получить истекшее время из CountDowTimer - PullRequest
0 голосов
/ 11 марта 2020

Мой таймер обратного отсчета начинается с 1:00:00. Я хочу добавить результат по истечении указанного c времени.

Например:

Время истекло: 00: 59: 00

Требуемый результат: 00: 01: 00

new CountDownTimer(get_no_of_hours, 1000) {
    @SuppressLint({"SetTextI18n", "DefaultLocale"})
    public void onTick(long millisUntilFinished) {

            timer_value.setText("seconds remaining: " + millisUntilFinished / 1000);
            hms = String.format("%02d:%02d:%02d",
                    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)));
            timer_value.setText(hms);
            remaining_time = millisUntilFinished;
    }


    @SuppressLint("SetTextI18n")
    public void onFinish() {
        long end_time = System.currentTimeMillis() - start_time;
        Log.d("EXAM TEST", "" + end_time);
        timer_value.setText("Time Over !");
        if(timer_data.equals("finish")){
            Intent intent = new Intent(ExamTestActivity2.this, ResultsPageActivity.class);
            intent.putExtra("in_session", true);
            intent.putExtra("time_taken_to_answer", timetaken);
            intent.putExtra("session_course_id", program_name_id);
            startActivity(intent);
            finish();
        }
    }
}.start();

1 Ответ

0 голосов
/ 11 марта 2020

Вы можете просто вычесть millisUntilFinished из get_no_of_hours

long elapsedTime = get_no_of_hours - millisUntilFinished;

и затем использовать elapsedTime, как вам нравится.

...