Как управлять сервисом Android? - PullRequest
0 голосов
/ 05 марта 2011

Я сейчас занимаюсь разработкой своего первого приложения для 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 () для выполнения в два интервала.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 05 марта 2011

(я новичок в разработке android, поэтому примите все, что я скажу, с крошкой соли)

Что ж, мне кажется, у вас много мыслей о структуре.Есть разные способы общения с сервисом.Я думаю, что лучшим вариантом было бы передать намерение, заставить службу получить намерение и изменить интервал на основе информации, полученной из намерения.

...