java循环正好一秒钟
我正在尝试创建一个Android应用程序,它可以每秒记录跑步者的位置。然而,我发现当它完成的时候需要一秒钟多一点的时间
这是我的密码:
Runnable run = new Runnable() {
@Override
public void run() {
Long start = SystemClock.elapsedRealtime();
if (getIfRunning() == true) {
try {
if (location2 != null) {
Float distanceFromLast = totalDistance(location2);
addToDistance(distanceFromLast);
}
getCoords();
mMap.clear();
markOldCoords();
writeCoords();
setCount();
updateScreen();
} catch (Exception e) {
}
}
Long time = SystemClock.elapsedRealtime() - start;
handler.postDelayed(this, 1000 - time);
}
};
handler.post(run);
# 1 楼答案
一般来说,你不可能得到这样的准确时间。由于系统当时正在做的其他事情,计时器总是会稍微早起或晚起。你能做的最好的事情就是接受它永远不会完美,并相应地更新你的代码,以找出你实际被触发的时间