Java 如何确定计时器任务是否已完成

Java 如何确定计时器任务是否已完成,java,android,timer,timertask,Java,Android,Timer,Timertask,我有以下代码: Timer timer = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { // TODO Auto-generated method stub } }; timer.schedule(task, 10000);//execute after 10 seconds 我们是否可以确定任务是否已由计时器执行或仍然到期?添

我有以下代码:

Timer timer = new Timer();      
TimerTask task = new TimerTask() {

    @Override
    public void run() {
        // TODO Auto-generated method stub
    }
};

timer.schedule(task, 10000);//execute after 10 seconds

我们是否可以确定任务是否已由计时器执行或仍然到期?

添加一个简单的变量,如

  boolean isTaskCompleted = false;
  Timer timer = new Timer();      
  TimerTask task = new TimerTask() {

     @Override
     public void run() {
        // do stuff
        isTaskCompleted = true;
     }
  };

  timer.schedule(task, 10000);//execute after 10 seconds
当然

编辑: 如果对扩展该类不满意,可以使用scheduledExecutionTime()方法,如果任务尚未运行,则返回0


我知道这个解决方法。。但这里的问题是,除非扩展TimerTask,否则不能显式调用isDone()。但我想知道TimerTask是否有任何api用于此..谢谢。。但是android doc for scheduledExecutionTime()说:尚未运行的任务返回未定义的值。java没有“undefined”类型,方法声明显示它将返回一个long,因此不能为null。此未定义的值为0。试试看:)这是个好主意!但是当我出于多种目的多次调用同一任务时。但是,我有不同的计时器变量来取消不同的任务。我如何才能找到与特定计时器对应的任务是否正在运行。
class CustomTask extends TimerTask {
    protected boolean isDone = false;
    public boolean isDone() {return isDone; }

    @Override
        public void run() {}
} 

CustomTask task = new CustomTask() {
    @Override
    public void run() {
       isDone=true;
    }
 };