0
私はh.postdelayedを作成しました。条件が真であればキャンセルしたいと思います。 私はif条件を書いて、その内部にh.removeCallbacksAndMessages(null)を行いました。しかし、私はまだ "タイマー"が動作しているのを見ることができます。どんな助け?ハンドラ#removeCallbacksAndMessagesが正しく動作しない
h.postDelayed(new Runnable() {
public void run() {
timePassed++;
timeLeft = (maxTime - timePassed)/10;
timeLeftStr = "Time left: " + timeLeft + " seconds";
timer.setText(timeLeftStr);
if (timeLeft <= 0) {
started = false;
h.removeCallbacksAndMessages(null);
setupGameOver(restartBtn, header1, header2, timer);
}
h.postDelayed(this, 100);
}
}, 100);
ので、同じように:いけないのremoveCallbacksAndMessages再度実行したいいけない場合 - あなたがそこにあるので、いずれかが 'Runnable'を「保留」持っていけません削除するものはありません。 – pskink
yea。 @Freelineは他のrunnablesもループしているので、停止する必要があると仮定していますので、 'removeCallbacksAndMessages'メソッドをそのまま残しておきます。 – petey
aaa ok私はあなたのポイントを参照 – pskink