-1
Handler
を使用して時間を更新してから呼び出すスレッドを作成しました。時間が終了したら、handler.removeCallbacks(runnable)
を使用してハンドラからスレッドを削除して終了します。だから私はそれを停止するスレッド内のブール値のフラグを使用します。ハンドラから実行可能ファイルを削除する
問題:時間の終了時刻は負になり始めますが、スレッドは停止していません。私はログにも見てきましたhandler.removeCallbacks(runnable)
も呼ばれています。
ここでは何が欠けていますか?
private Handler handler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
time.setText(
String.format(
"%d:%d",
TimeUnit.MILLISECONDS.toMinutes(AppController.RunningTime),
TimeUnit.MILLISECONDS.toSeconds(AppController.RunningTime) -
TimeUnit.MINUTES.toSeconds(
TimeUnit.MILLISECONDS.toMinutes(AppController.RunningTime)
)
)
);
AppController.RunningTime = AppController.RunningTime - 10000;
if (AppController.RunningTime <= 0) {
// inform user about your time is finished.
handler.removeCallbacks(runnable);
openTimeUpDailog(mContext);
}
handler.postDelayed(this, 1000);
}
};
runnable.run();
タイマーはどこですか? – Pehlaj
実際にはカウントダウンタイマーとして動作します。 –
完全なコードを表示 – Pehlaj