精确的一秒间隔的最佳计时器技术是什么?

jda*_*day 4 java android timer intervals chronometer

我正在为一个专门的户外运动写一个简单的计时应用程序.该应用程序每秒执行一系列计算,并显示用户感兴趣的信息.经过的时间是计算结果准确性的关键.理想情况下,计算和结果将每秒更新一次.我尝试使用计时器或计时器小部件来控制更新间隔:

是否有更准确的方法来建立间隔?有没有一种技术会给我一个几乎精确的一秒间隔?

下面的代码并不完整 - 只是为了显示我正在使用的时间和计时器的类型 - 它们运行良好,它们只是不精确.

import java.util.Timer ;
import java.util.TimerTask;
...
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
public void run() {
...
TimerMethod();
}
}, 0, 1000);
... 
private void TimerMethod()
{
this.runOnUiThread(Timer_Tick);
}
...
private Runnable Timer_Tick = new Runnable() {
public void run() {
blah blah
}
Run Code Online (Sandbox Code Playgroud)

///////////////////////////////

import android.widget.Chronometer;
...
final Chronometer myChronometer = (Chronometer)findViewById(R.id.chronometer);
final TextView keyBox = (TextView)findViewById(R.id.keyBox);
...      
myChronometer.start();
...   
myChronometer.setOnChronometerTickListener(
new Chronometer.OnChronometerTickListener(){
...
public void onChronometerTick(Chronometer myChronometer) {
blah blah             
}
Run Code Online (Sandbox Code Playgroud)

maz*_*cha 7

您是否查看了java.util.Timer类的scheduleAtFixedRate方法?

根据javadoc,"在固定速率执行中,每次执行都是相对于初始执行的预定执行时间进行调度的.如果执行因任何原因(例如垃圾收集或其他后台活动)而延迟,则两次或更多次执行将快速连续发生以"赶上".从长远来看,执行的频率将恰好是指定时期的倒数(假设Object.wait(long)的系统时钟是准确的)."