Java 停止计时器任务而不停止计时器
我有一个Java 停止计时器任务而不停止计时器,java,android,timer,timertask,Java,Android,Timer,Timertask,我有一个计时器,我使用scheduleAtFixedRate方法以一定的固定速率为它安排任务。问题是,在执行某些操作后,我想完成/取消以前计划的任务 我知道我可以使用.cancel()或.purge()但这会取消/完成我的计时器,这是我不想做的事情。我只想完成这项任务 你们有谁知道怎么做吗 这是我的代码(我将计时器创建为类的字段) boolean isStop=false receiveTimer.scheduleAtFixedRate(new TimerTask() { @O
计时器
,我使用scheduleAtFixedRate
方法以一定的固定速率为它安排任务。问题是,在执行某些操作后,我想完成/取消以前计划的任务
我知道我可以使用.cancel()
或.purge()
但这会取消/完成我的计时器,这是我不想做的事情。我只想完成这项任务
你们有谁知道怎么做吗
这是我的代码(我将计时器
创建为类的字段)
boolean isStop=false代码>
receiveTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
if(!isStop){
int fileSize=(int)fileSizeToReceive;
int actual= totalReceived;
((Notification.Builder) mBuilderReceive).setContentText("Receiving "+actualNameToReceive);
((Notification.Builder) mBuilderReceive).setProgress(fileSize, actual, false);
mNotifyManager.notify(id, ((Notification.Builder) mBuilderReceive).getNotification());
}
}
},0,500);//delay, interval
当您不想执行代码集isStop=true
时,只需保留对TimerTask
的引用,就可以随时调用cancel()
在TimerTask
上调用cancel()
例如,声明您的任务:
TimerTask task;
初始化并计划它:
task = new TimerTask() {
@Override
public void run() {
int fileSize=(int)fileSizeToReceive;
int actual= totalReceived;
((Notification.Builder) mBuilderReceive)
.setContentText("Receiving "+actualNameToReceive);
((Notification.Builder) mBuilderReceiver)
.setProgress(fileSize, actual, false);
mNotifyManager.notify(id, ((Notification.Builder) mBuilderReceive)
.getNotification());
}
};
receiveTimer.scheduleAtFixedRate(task, 0, 500);
要停止它,只需对任务实例调用cancel()
:
task.cancel();
我认为这会继续执行计时器,虽然代码不会被执行。
task.cancel();