У меня есть миллисекундный хронометр, который работает нормально. Код кнопки:
btnStart.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
startTime = SystemClock.uptimeMillis();
customHandler.postDelayed(updateTimerThread,0);
txtCheck.setText("");
}
});
Runnable:
Runnable updateTimerThread = new Runnable() {
@Override
public void run() {
timeMilliSeconds = SystemClock.uptimeMillis()-startTime;
updateTime = timeSwapBuff+timeMilliSeconds;
secs = (int)(updateTime/1000);
mins = (int)(secs/60);
secs %=60;
milliseconds = (int)(updateTime%1000);
txtChrono.setText(""+mins+":"+String.format("%2d",secs)+":"
+String.format("%3d",milliseconds));
customHandler.postDelayed(this,0);
check(secs, milliseconds)
}
};
Функция проверки соответствия времени:
public void check(Integer secs, long milli){
if (secs.equals(45) && milli.equals(367)){
txtCheck.setText("done");
}
}
Мне нужно проверить время, чтобы начать событие. Время, которое я должен проверить, указано в секундах. Миллисекундах (т.е. 45,367), но эта функция (проверка) не работает. Есть идеи?
Функция проверки работает ... но только 1 раз из пяти: может быть, время обновления слишком мало? Кроме того, код находится во фрагменте: имеет ли он какое-либо влияние на таймер?