所以,我从这篇优秀的帖子中借用了计时器方法:
写得非常好,并且检查得很好。但是,我发现它大约每隔106-114毫秒发射一次,而不是所需的100毫秒。这有意义,还是看起来很慢?如果我想让它接近精确的100毫秒(我在某些地方使用它来测量持续时间),我应该做些什么改变?
我的代码在
下面Handler timerHandler = new Handler();
Runnable timerRunnable = new Runnable() {
@Override
public void run() {
TickTimer_Elapsed();
timerHandler.postDelayed(this, 100);
}
};
void TickTimer_Start() { timerHandler.postDelayed(timerRunnable, ); }
void TickTimer_Stop() { timerHandler.removeCallbacks(timerRunnable); }
void TickTimer_Elapsed()
{
m_FSM.Tick_10Hz(); // actually a bit slower than 10Hz
}
答案 0 :(得分:1)
计时器是英文的重载术语,意思是测量时间的设备(例如秒表),或者是一段时间后触发的设备(例如蛋计时器)。
在Android中,计时器仅适用于后者,并且不保证绝对准确性。
"我在某些地方使用它来衡量持续时间"
在现实生活中,要知道已经过了多少时间,你不来观看时钟并计算秒数!那个时候你什么都没做。一种有效的方法是只查看两次时钟并减去两次。计算机也是如此:
e.g:
long startTimeMs = System.currentTimeMillis();
随后:
long durationMs = System.currentTimeMillis() - startTimeMs;