私はチェス時計を作っていますが、遅れが必要です(カウントする前に10秒待っているようです)。ハンドラを使用しましたが、ボタンが10秒以内にクリックされた場合は何も起こりません。助けてください!ありがとう!私のコード :カウントダウンタイマーの遅延 - Android
mHandler.postDelayed(new Runnable() {
public void run() {
// count down timer start
timer2 = new CountDownTimer(totalSeconds, Integer.parseInt(delay.getText().toString())) {
public void onTick(long millisUntilFinished) {
secondsTimer = (int) (millisUntilFinished/1000) % 60;
minutesTimer = (int) ((millisUntilFinished/(1000 * 60)) % 60);
hoursTimer = (int) ((millisUntilFinished/(1000 * 60 * 60)) % 24);
person2.setText(hoursTimer + ":" + minutesTimer + ":" + secondsTimer);
}
public void onFinish() {
person2.setText("Time Up!");
person2.setBackgroundColor(Color.RED);
mp.start();
}
}.start();
}
}, finalDelay);
私は遅延をしたいが、私はUIをロックし、それがハンドラで今やっているようアプリが応答しないしたくありません。どんな助けもありがとう!前もって感謝します!
お返事ありがとうございます、しかし、あなたは 'startHandlerAfterWaited10Seconds()'メソッドで何が起きているのか説明できますか? –
こんにちはKharbanda、 上記の方法は、カウントダウンタイマーのように機能します。 CountDownタイマークラスの代わりにHandlerを使用することをお勧めします。 - HandlerはCountDownタイマークラスよりも優れたパフォーマンスを持つ必要があります。あなたはCounDownタイマーは、実際にはその中核にハンドラを実装し、有用なhttp://stackoverflow.com/questions/35497844/handler-postdelayedrunnable-vs-countdowntimer また、ここで参照してください見つけることができます。 –
ありがとう!私はあなたの説明がウェブサイトだけでなく有用であることを発見しました!どうもありがとう。しかし、ちょうど確かめるために、カウントダウンタイマーはメソッド 'startHandlerAndWait10Seconds()'ですか? –