正確さのために Timer() を使用していますが、PostDelayed Handler と同じように動作します。1 回だけ呼び出されます。タイマーコードは次のとおりです。
public void setWFT() {
WFT = new Timer();
WFT.schedule(new TimerTask() {
@Override
public void run() {
WFTTimerMethod();
}
}, 60000); // 60 seconds delay
}
private void WFTTimerMethod() {
this.runOnUiThread(Timer_Tick);
}
private Runnable Timer_Tick = new Runnable() {
public void run() {
// My commands here
}
};
これは、タイマーが開始されると、60 秒後に 1 回だけ run() を呼び出します。時々、タイマーをキャンセルして遅延を更新する必要があります (「60000」の値を置き換えます)。タイマーを再び開始するには、新しい遅延値を指定して WFT() を再度呼び出してタイマーを再作成するだけです。
問題は、次を使用してタイマーをキャンセルするときです。
WFT.cancel();
WFT.purge();
タイマーが起動しない。run() は、想定されているときに実行されません。私の質問は、cancel() と purge() を使用するか、cancel() だけを使用するかということです。
ありがとう