#android #timer #handler #runnable #stopwatch
#Android #таймер #обработчик #runnable #секундомер
Вопрос:
Я пытаюсь запустить таймер, но при запуске моего таймера появляется странная ошибка. Он начинает отсчет с -214342352:00
. Я просмотрел http://developer.android.com/resources/articles/timed-ui-updates.html но не смог найти, что не так с моим кодом.
private Handler mHandler = new Handler();
private long mStartTime = 0L;
Таймер запуска
if (mStartTime == 0L) {
mStartTime = System.currentTimeMillis();
mHandler.removeCallbacks(mUpdateTimeTask);
mHandler.postDelayed(mUpdateTimeTask, 1000);
}
Runnable
public Runnable mUpdateTimeTask = new Runnable() {
public void run() {
final long start = mStartTime;
long millis = SystemClock.uptimeMillis()-start;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
if (seconds < 10) {
alarmCounter.setText("" minutes ":0" seconds);
} else {
alarmCounter.setText("" minutes ":" seconds);
}
// mHandler.postAtTime(this,start (((minutes * 60) seconds 1) * 1000));
mHandler.postDelayed(this, 1000);
}
};
Ответ №1:
Вы используете две разные системы измерения. Либо используйте SystemClock.uptimeMillis()
, либо используйте System.currentTimeMillis()
для всех ваших измерений.
Комментарии:
1. да. uptimemillis будет намного меньше, чем currenttimemillis