Я разрабатываю 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 и начинает отсчитывать. Почему это произошло? Есть ли разница между временем эмулятора и временем реального устройства? Может кто-нибудь объяснить.