連続した間隔の後に繰り返し呼び出されるメソッドがあります。私は使用しpublic void schedule(TimerTask task, Date firstTime, long period)
ました。このスケジュールメソッドが一定時間後に呼び出されるのを停止する方法。
今のところ、このメソッドを停止する方法がわかりません。
どんな助けでも大歓迎です。
連続した間隔の後に繰り返し呼び出されるメソッドがあります。私は使用しpublic void schedule(TimerTask task, Date firstTime, long period)
ました。このスケジュールメソッドが一定時間後に呼び出されるのを停止する方法。
今のところ、このメソッドを停止する方法がわかりません。
どんな助けでも大歓迎です。
あなたはキャンセルをスケジュールすることができます。たとえば、ScheduledExecutorを使用すると、次のようになります。
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);
Runnable yourRecurrentTask = ...; //your recurrent task
//run every seconds
final ScheduledFuture<?> future = scheduler.
scheduleAtFixedRate(yourRecurrentTask, 0, 1, TimeUnit.SECONDS);
Runnable cancelTask = new Runnable() {
@Override
public void run() {
future.cancel(true);
}
};
//cancel the reccurent task in 15 seconds
scheduler.schedule(cancelTask, 15, TimeUnit.SECONDS);
決められた時間の後にタイマーを止めることはできませんか?別のタイマーを使用できます。このタイマーは1回だけ起動し、他のタイマーを停止します。
既存のタスクへの参照を保持し、それTimerTask
を呼び出す別のタスクをスケジュールしますcancel
。このタスクは、繰り返しのない1回限りのスケジュールとしてスケジュールする必要があります。