Я реализовал 2 updateTimerThreads, которые были такими:
private Runnable updateTimerThread = new Runnable() {
public void run() {
timeInMilliseconds = SystemClock.uptimeMillis() - startTime;
updatedTime = timeSwapBuff + timeInMilliseconds;
secs = (int) (updatedTime / 1000);
mins = secs / 60;
secs = secs % 60;
milliseconds = (int) (updatedTime % 1000);
//Log.d(TAG, "Secs: " + secs + " Min: " + mins);
customHandler.postDelayed(this, 0);
}
};
2 Методы запуска:
public void startTimer(){
if(firsttime){
startTime = SystemClock.uptimeMillis();
customHandler.postDelayed(updateTimerThread, 0);
firsttime = false;
}
}
и 2 метода паузы:
public void pauseTimer(){
timeSwapBuff += timeInMilliseconds;
customHandler.removeCallbacks(updateTimerThread);
firsttime = true;
}
Моя проблема:
Всякий раз, когда я переключаюсь между одним таймером и другим (пауза один, запуск другого), они продолжают добавлять много времени, минуты в секундах.
Есть идеи, как решить эту проблему?
Спасибо.