我想用一个Timer维护一个TimerTask的数组,每一个Task有自己的触发时间,可以随时向数组中添加和删除Task.
Timer类结构如下:
class MyTimer{
  Vector tasks = null;           //元素为TimerTask
  Timer timer = new Timer();  run(){
    stop();
    for (Iterator it = tasks.iterator(); it.hasNext();) {
            TimerTask task = (TimerTask) it.next();
            timer.schedule(task);  //此处实现Task周期执行,代码简化了
    }
  }  add(TimerTask task){
    tasks.add(task);
    timer.schedule(task,time);     //此处实现Task周期执行,代码简化了
  }  remove(TimerTask task){
    task.cancel();
    tasks.remove(task);
  }  stop(){
    timer.cancel();
  }
}但在运行时却有以下问题,请大家帮忙解决一下:
1.执行run(),系统抛出异常:
  java.lang.IllegalStateException: Task already scheduled or cancelled
2.执行remove()后,任务照常按周期执行,也就是并没有终止。