Ответ 1
Вы не можете. Вам придется отменить текущую задачу и перенести ее.
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")));
Я бы хотел изменить интервал таймера в другом сегменте кода. Есть ли способ сделать это? Я не хочу повторять мой код, я бы хотел добавить новый интервал "период".
Как я могу это сделать после расписания?
Вы не можете. Вам придется отменить текущую задачу и перенести ее.
Вы должны отменить таймер, прежде чем вы сможете установить для него новое расписание.
timerTask.cancel();
timerTask = new MyTimerTask();
timer.schedule(timerTask, delay);
Один из способов сделать это - запланировать таймер за каждую секунду, а внутри вашего таймера - увеличить счетчик на каждую каждую секунду, тогда вы можете добавить, если инструкция, чтобы проверить ваш счетчик по вашей желаемой переменной счетчика (в терминах секунд), чтобы вернуться, ничего не делая
timerCounter++;
if((timerCounter%desiredCounter)!=0){
return;
}