Я пишу простое приложение для хронометража для специализированного спорта на открытом воздухе.
Приложение выполняет серию вычислений каждую секунду и отображает информацию, представляющую интерес для пользователя. Прошедшее время является ключом к точности рассчитанных результатов. В идеале расчет и результаты будут обновляться ровно каждую секунду. Я пытался использовать таймер или виджет хронометра для управления интервалом обновления:
Есть ли более точный способ установить интервал?
Есть ли метод, который даст мне почти точный интервал в одну секунду?
Приведенный ниже код не является полным - просто попытка показать тип используемого времени и хронометра - они работают нормально, они просто не точны.
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
}
///////////////////////////////
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
}