Фоновый процесс для представления уведомлений, когда основное приложение не запущено - PullRequest
1 голос
/ 15 июля 2011

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

Я хочу обновитьпроцесс запускается автоматически, даже если основное приложение не открыто.

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

Однако я заметил, что Google запускает сервис для Friendlocationи google + services постоянно на моем нексусе.

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

Просто ищите здесь лучшие практики.

1 Ответ

2 голосов
/ 15 июля 2011

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

Абсолютно.

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

Это правильный ответ.

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

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

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