我的android计时器运行缓慢

时间:2016-05-08 06:23:04

标签: android timer

所以,我从这篇优秀的帖子中借用了计时器方法:

Android timer? How-to?

写得非常好,并且检查得很好。但是,我发现它大约每隔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

}

1 个答案:

答案 0 :(得分:1)

计时器是英文的重载术语,意思是测量时间的设备(例如秒表),或者是一段时间后触发的设备(例如蛋计时器)。

在Android中,计时器仅适用于后者,并且不保证绝对准确性。

  

"我在某些地方使用它来衡量持续时间"

在现实生活中,要知道已经过了多少时间,你来观看时钟并计算秒数!那个时候你什么都没做。一种有效的方法是只查看两次时钟并减去两次。计算机也是如此:

e.g:

long startTimeMs = System.currentTimeMillis();

随后:

long durationMs = System.currentTimeMillis() - startTimeMs;