一个TimerTask对象 在执行后 其state会变为EXECUTED 
如果再次使用会报异常state属性为friedly的 没有办法直接改变它的值有没有办法重复使用TimerTask呢?即 如果 
Timer timer = new Timer();
TimerTask timerTask = new TimerTask{
   public void run() {
       ........
   }
};
timer.schedule(timerTask ,m);.........timer.schedule(timerTask ,n); //这里会报异常  原因参考附jdk代码
附:Timer(java.util.Timer) sched 方法中
............
............
 if (task.state != TimerTask.VIRGIN)
                    throw new IllegalStateException(
                        "Task already scheduled or cancelled");
............
............
TimerThread(java.util.TimerThread) mainLoop方法中
............
............
 task.state = TimerTask.EXECUTED;
............
............

解决方案 »

  1.   

    用第三个参数
    timer.scheduleAtFixedRate(new RemindTask(), time,24*60*60*1000);
    这里24*60*60*1000 表示一天后再次执行
      

  2.   

    在第一次设定的时候并不知道第二次要什么时间执行阿
    timer.schedule(timerTask ,m); //此时并不只道此任务何时还需要再执行//经过一些检查之后 发现还需要执行一次timerTasktimer.schedule(timerTask ,m); //这个地方怎么做才能不报异常?
    怎么做到//timerTask.state = TimerTask.VIRGIN //下面的代码中可能还有需要执行timerTask的地方
    //
      

  3.   

    新建一个类 extends timertask,
    需要使用的时候就创建一个新的对象怎么样?
      

  4.   

    继承自 TimerTask的子类也不能访问state属性呀