Лучший способ поставить повторяющуюся задачу - PullRequest
3 голосов
/ 01 ноября 2010

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

Я экспериментировал с задачей «Таймеры и таймеры», но почему-то она не работает, когда я использую с ней класс календаря Java, например:

    Calendar c1 = Calendar.getInstance();
          c1.add(Calendar.SECOND, 30);    
  updateTimer.scheduleAtFixedRate(cleanCompletedCache, c1.getTimeInMillis(),hour );

и из того, что я читал, обработчики не подходят для этой многократной задачи.Должен ли я использовать диспетчер сигналов тревоги для этого, и почему вышеупомянутый код не будет работать правильноспасибо

1 Ответ

3 голосов
/ 08 мая 2011

Вы хотите AlarmManager и его вызовы setRepeating или setInexactRepeating.

Там вы планируете доставку Intent в ваше приложение и пишете получатель намерений для его обработки.Таким образом, за активацию вашего приложения полностью отвечает система Android, и ваше приложение не должно запускаться весь час, пока оно ожидает активации.

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

...