Android передний план службы - PullRequest
1 голос
/ 08 сентября 2011

Вот история: Я создал приложение, которое запускается во время загрузки и выполняет определенные действия с заданным интервалом.Чтобы добиться этого, я создаю сервис, который использует AlarmManager для создания повторяющегося события, которое затем обрабатывается BroadcastReceiver, который выполняет тяжелую работу.Когда служба уничтожена (пользователь выбирает выход из приложения), событие должно быть отменено, поэтому служба должна сохранять ссылку на тот же PendingIntent, который использовался для ее запуска.

проблема: Служба должна вызвать startForeground, чтобы убедиться, что она не умирает, поэтому она может поддерживать ссылку на PendingIntent.Уведомление постоянно появляется в строке состояния, и пользователи находят его раздражающим (если честно, я тоже).

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

Несколько догадок: Может быть, возможно восстановить ссылку в службе, когда она будет воссоздана?Если так, то как?Таким образом, я мог бы избежать использования startForeground.Но все же, как получить значок в строке состояния?

Или, может быть, у кого-то есть лучшее решение?

1 Ответ

0 голосов
/ 08 сентября 2011

Прежде всего вам не нужно все время держаться за PendingIntent.Если у вас есть все необходимые данные, вы можете позже заново создать их, чтобы отменить уведомление - вам просто нужно заново создать его с точно такими же данными.

...