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();