자, 저는 자바와 안드로이드 프로그래밍 모두를 배우는 진정한 초보자입니다. 친절한 게임을위한 농구 응용 프로그램을 만들려고합니다. 지금 나는 24에서 0까지 세는 샷 클록을 만들고 사운드를 재생하며 버튼으로 리셋됩니다.안드로이드 타이머가 정확하지 않습니다.
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 초 남았습니다. 원시 방식으로 간격을 변경하는 것 외에도 정확성을 높이려면 어떻게해야합니까? 제발, 내가 새로 왔기 때문에 친절하세요 :) 도움을 주셔서 감사합니다!
PS : Java에서는 규칙 상 클래스/인터페이스 만 대문자로 시작합니다. – m0skit0