Android - 有准确的计时器或睡眠功能吗?

时间:2013-09-08 23:10:13

标签: android multithreading timer

当我的应用程序处于物理模拟的中间时,我希望它以恒定的FPS(例如30)运行,因为这会以某种方式影响物理。但是,计算结束当前“帧”并调用Thread.sleep(1000 / FPS - 已经花费的时间)所花费的时间是一个坏主意,因为OS调度可能会在FPS中产生相当高的错误/不准确性。 另一个糟糕的想法是让模拟完全不睡觉,而只是在(!time_has_come)time + = System.nanotime()时运行,因为它会浪费CPU资源和电池。是否有更准确,而且资源不昂贵的方式来创建计时器 这将在恒定的FPS中为我的模拟提供脉冲?

1 个答案:

答案 0 :(得分:0)

我不确定它有多准确,但scheduleAtFixedRate类的Timer方法应该做你需要的。

http://developer.android.com/reference/java/util/Timer.html#scheduleAtFixedRate%28java.util.TimerTask,%20long,%20long%29