Я разрабатываю небольшое приложение для Android, которое должно запускать фоновый процесс, используемый для периодического запуска удаленного подключения (например, для проверки наличия новых данных на сервере). Очевидно, что этот процесс должен работать и в том случае, если в данный момент активность приложения не выполняется.
Как я вижу в документации, есть два типа подхода к разработке запланированного фонового процесса в Android, который работает также при закрытии приложения.
- Услуги
- Будильники
Первый не очень подходит для моих требований, потому что он может быть убит ОС в случае нехватки памяти, поэтому для меня он бесполезен. startForeground () не так хорош, потому что я хочу, чтобы процесс молчал.
Аварийный сигнал в порядке, потому что он не может быть отключен ОС, поэтому он может работать бесконечно. Но ... Если я планирую намерение с помощью AlarmManager, как я могу сохранить ссылку на намерение, сохранившуюся при перезапуске приложения?
Например, если я хочу отменить или перенести тревогу, мне нужна ссылка на начальное намерение, чтобы отменить его с помощью метода «AlarmManager.cancel (Intent i)». Но если приложение было перезапущено пользователем, как я могу получить ссылку на первоначальное намерение, которое использовалось для запуска тревоги?
Есть ли другой способ отключить будильник, если запущенное приложение было перезапущено?