Обработчик с отложенной задержкой Android не может инициировать запуск - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть функция для отсрочки блокировки текущей работы системы.Функция startTimer запускается в функции onCameraFrame (), которая вызывает каждый захваченный кадр.Если вызывается мой таймер ниже, поднимается флаг для блокировки процесса.

public void startTimer() {

    if (!isLockSystem()) {
        Handler handler = new Handler();
        setLockSystem(true);
        Log.d(TAG_DEBUG, " The system is locked !");
        handler.postDelayed(new Runnable(){
                    @Override
                    public void run() {
                        setLockSystem(false);
                        Log.d(TAG_DEBUG, " The system is unlocked !");
                    }
                }, 5000);
    } else {
        Log.d(TAG_DEBUG, " The system is already locked !");
    }
}

Функция startTimer () вызывается, но никогда не возвращается к функции run ().Всякий раз, когда я запускал startTimer, нажималось «Система уже заблокирована».

Какой безопасный способ реализовать таймер только один раз в повторяющемся процессе, который, как захват непрерывных кадров с камеры.

1 Ответ

0 голосов
/ 23 сентября 2018

Проблема заключается в выполнении обработчика в методе onCameraFrame ().

Правильным способом является вызов этой функции в onCreate с триггером ShakeListener.

...