Android, как изменить интервал TimerTask после shcedule?

timerUploadTime = new Timer();
timerUploadTimeTask = new TimerTask() {
   @Override public void run() {
      mHandler.post(new Runnable() {
        @Override
         public void run() {
             ...
          }
      }
    });
 }
 };

timerUploadTime.schedule(timerUploadTimeTask, 1, Integer.parseInt(Utils.loadStringValue(mycontext, "refresh")));

Я бы хотел изменить интервал таймера в другом сегменте кода. Есть ли способ сделать это? Я не хочу повторять мой код, я бы хотел добавить новый интервал "период".

Как я могу это сделать после расписания?

Ответ 1

Вы не можете. Вам придется отменить текущую задачу и перенести ее.

Ответ 2

Вы должны отменить таймер, прежде чем вы сможете установить для него новое расписание.

timerTask.cancel();
timerTask = new MyTimerTask();
timer.schedule(timerTask, delay);

Ответ 3

Один из способов сделать это - запланировать таймер за каждую секунду, а внутри вашего таймера - увеличить счетчик на каждую каждую секунду, тогда вы можете добавить, если инструкция, чтобы проверить ваш счетчик по вашей желаемой переменной счетчика (в терминах секунд), чтобы вернуться, ничего не делая

timerCounter++;
if((timerCounter%desiredCounter)!=0){
 return;
}