В настоящее время я разрабатываю свое первое приложение для Android. Я хочу, чтобы пользователь моего приложения мог активировать «автоматическое обновление данных», что означает, что некоторые данные должны обновляться каждые x минут. Я создал службу, которая запускается
service = new Intent(context, MyService.class);
context.startService(service);
и я использую TimerTask в службе для периодического обновления данных.
timer = new Timer();
TimerTask tt = new TimerTask() {
public void run() {
refreshData();
}
};
timer.scheduleAtFixedRate(tt,0,interval);
Я заметил, что служба может быть перезапущена время от времени. Как я могу гарантировать, что refreshData(); запускается каждую минуту интервала (не больше или меньше)? Если пользователь меняет интервал (предпочтение), как убить текущий таймер (задачу) и запустить новый? Прямо сейчас он, кажется, запускает новый, но не убивает старый, заставляя refreshData() выполняться в соответствии с двумя интервалами.
Любая помощь приветствуется!