Java 定时器函数在每次调用时添加一个额外的定时器

Java 定时器函数在每次调用时添加一个额外的定时器,java,android,timer,intervals,Java,Android,Timer,Intervals,有人能帮我使用两个计时器功能吗: 第一个只做计时器,同时先取消前一个, 第二个只是处理取消计时器 public void startInterval(int delay, int time, final String eventName){ cancelInterval(); mInterval = new Timer(); mInterval.scheduleAtFixedRate(new TimerTask() { @Override publ

有人能帮我使用两个计时器功能吗:

第一个只做计时器,同时先取消前一个, 第二个只是处理取消计时器

public void startInterval(int delay, int time, final String eventName){
    cancelInterval();
    mInterval = new Timer();
    mInterval.scheduleAtFixedRate(new TimerTask() {
      @Override
      public void run() {
        Log.i("timer", "Interval");
        sendEvent(eventName, Arguments.createMap());
      }
    }, delay, time);
  }

public void cancelInterval() {
    if (mInterval != null){
      mInterval.cancel();
      mInterval.purge();
    }

    mInterval = null;
}
问题是,每次我调用计时器时,计时器都会成倍增加


第一次调用时,它按预期工作,但几次调用后,每次调用都会增加一个额外的计时器

请注意,当您取消计时器时,如果任务在取消时正在运行,它将继续运行直至完成。这可能会出现多个计时器正在运行的情况(特别是在“sendEvent”阻塞或耗时的情况下)。因此,我让它在sendEvent中注销,但每次运行该函数时,它都会添加一个额外的计时器。