Java 一段时间后或根据用户请求安排的事件

Java 一段时间后或根据用户请求安排的事件,java,Java,我想在一段时间后或根据用户请求安排一个操作(任务)。 在我的代码中,我有这样的代码 Timer timer = new Timer(); TimerTask timerTask = new TimerTask(); timer.schedule(timerTask,time);//Time in milli seconds if(UserRequestedtoCancel) { // Do operatation timerTask.cancel(); } 问题是,在我指定的时

我想在一段时间后或根据用户请求安排一个操作(任务)。 在我的代码中,我有这样的代码

Timer timer = new Timer();
TimerTask timerTask = new TimerTask();
timer.schedule(timerTask,time);//Time in milli seconds

if(UserRequestedtoCancel)
{
  // Do operatation 
  timerTask.cancel(); 
} 
问题是,在我指定的时间之后,我的任务仍在执行,但只执行了一次。 我是否还应该执行timer.cancel()或其他操作来避免执行任务


感谢您在调用timerTask.cancel()后设置timerTask=null,这对我很有用。我让用户或调度程序只执行了一次任务

在调用timerTask.cancel()后设置timerTask=null对我来说很有效。我让用户或调度程序只执行了一次任务

因此,您希望该任务仅由用户或调度程序执行一次???是的,我希望该任务仅由该用户或调度程序执行一次。因此,您可以设置一个标志,通知您该任务已执行。现在,两个块都应检查此标志是否已执行任务。但如何根据标志取消计划程序需要执行的任务?目前,您可以检查任务本身中的标志变量,以便跳过任务。还有您在原始问题中提到的选项,您可以在用户执行任务时禁用计时器。因此,您希望任务仅由用户或调度程序执行一次???是,我希望它只能由用户或调度程序执行一次。因此,您可以设置一个标志,通知您任务已执行。现在,两个块都应检查此标志是否已执行任务。但如何根据标志取消计划程序需要执行的任务?目前,您可以检查任务本身中的标志变量,以便跳过任务。此外,您在原始问题中提到的选项还可以在用户执行任务时禁用计时器。