我想编写一个需要在指定时间执行某些操作的 Android 应用程序(确切地说是游戏)。这些更新的精度应不低于 1ms。那可能吗?
我尝试运行一个线程并使用 System.nanoTime() 测量更新之间的时间。结果,有数百次更新之间的时间等于或长于 1 毫秒。
我能否以某种方式达到一种精度,以确保每 1ms 至少执行一个循环?
这是我用于测试的代码:
public class MyThread extends Thread
{
private boolean running = false;
public void setRunning(boolean running)
{
this.running = running;
}
public MyThread()
{
this.setPriority(MAX_PRIORITY);
}
@Override
public void run()
{
long currentTimeNano = 0;
long lastFrameTimeNano = 0;
long nanoFrameDelay = 0;
int longDelays = 0; //Number of delays >= 1ms
while(running)
{
currentTimeNano = System.nanoTime();
//Measure delay between updates in ns
nanoFrameDelay = currentTimeNano - lastFrameTimeNano;
if(nanoFrameDelay >= 1000000)
longDelays++;
lastFrameTimeNano = currentTimeNano;
}
}
}
先感谢您!