Почему существует разница во времени на таймере обратного отсчета между эмулятором и реальным устройством android? - PullRequest
0 голосов
/ 23 марта 2020

Я разрабатываю android таймер обратного отсчета для подсчета. Ниже приведен код.

public abstract static class CountUpTimer extends CountDownTimer {
    private static final long INTERVAL_MS = 1000;
    private final long duration;

    protected CountUpTimer(long durationMs) {
        super(durationMs, INTERVAL_MS);
        this.duration = durationMs;
    }

    public abstract void onTick(int second);

    @Override
    public void onTick(long msUntilFinished) {
        int second = (int) ((duration - msUntilFinished));
        onTick(second);
    }

    @Override
    public void onFinish() {
        onTick(duration );
    }
}

Использование приведенного ниже кода для запуска

  timer = new CountUpTimer(99999999) {
        public void onTick(int second) {
            SystemClock.setCurrentTimeMillis ( second );
            simpleDateFormat = new SimpleDateFormat ("HH:mm:ss");
            tv_timer.setText(simpleDateFormat.format (second));
            percentage = Math.round (second/t1 *100);
            tvp.setText ( percentage+"%" );

        }
    };timer.start();

Таймер работает нормально, когда я запускаю эмулятор pixel 2 API 29, который запускается в 00:00 и прикинь. Проблема в том, что когда я запускаю приложение на реальном устройстве, таймер запускается в 07:30 и начинает отсчитывать. Почему это произошло? Есть ли разница между временем эмулятора и временем реального устройства? Может кто-нибудь объяснить.

...