【发布时间】:2018-09-20 19:59:51
【问题描述】:
我有延迟锁定系统当前工作的功能。 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 时,都会按下“系统已锁定”。
在重复过程中只实现一次计时器的安全方法是什么,比如从相机捕捉连续帧。
【问题讨论】:
标签: java multithreading timer handler