好的,我是一个刚开始学习Java和Android编程的新手。我正在尝试制作一个篮球应用程序,用于友谊比赛。现在我正在制作一个从24到0倒计时的投篮时钟,它会播放声音,并通过一个按钮进行重置。
这个想法是我有一个计时器,每0.1秒就会响一次,并相应地更新时钟。这个方法很好用,时钟从24开始倒数到0并且能够正确重置。但我的问题是它不准确 - 我用其他3个计时器测试了它,总是慢了一点:当其他计时器到达0时,这个计时器只剩下大约1-1.5秒左右。除了以原始方式更改间隔之外,我该怎么做才能使它更准确呢? 请友善回答,因为我是新手 :) 感谢您的帮助!
public class MainActivity extends Activity {
private ShotClock shotClock;
private TextView shotClockTimer;
private Timer timer = new Timer();
private Button shotClockReset;
private final static int interval = 100;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
shotClockTimer = (TextView) findViewById(R.id.shotClock);
shotClockReset = (Button)findViewById(R.id.shotClockReset);
shotClock = new ShotClock();
shotClockReset.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
shotClock.shotClockReset();
}
});
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
TimerMethod();
}
}, 0, interval);
}
private void TimerMethod() {
this.runOnUiThread(Timer_Tick);
}
private Runnable Timer_Tick = new Runnable() {
public void run() {
shotClock.advanceClock();
shotClockTimer.setText(String.format("%.1f",shotClock.getSeconds()));
}
};
}
这个想法是我有一个计时器,每0.1秒就会响一次,并相应地更新时钟。这个方法很好用,时钟从24开始倒数到0并且能够正确重置。但我的问题是它不准确 - 我用其他3个计时器测试了它,总是慢了一点:当其他计时器到达0时,这个计时器只剩下大约1-1.5秒左右。除了以原始方式更改间隔之外,我该怎么做才能使它更准确呢? 请友善回答,因为我是新手 :) 感谢您的帮助!