Таймеры продолжают прыгать раньше времени - PullRequest
0 голосов
/ 14 марта 2020

Я реализовал 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;
    }

Моя проблема:

Всякий раз, когда я переключаюсь между одним таймером и другим (пауза один, запуск другого), они продолжают добавлять много времени, минуты в секундах.

Есть идеи, как решить эту проблему?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...