Как понять, что служба обновления работает в фоновом режиме?

Я сейчас работаю над приложением для ОС Android, которое отображает некоторые данные. Чтобы эти данные были актуальными, необходимо, чтобы приложение время от времени получало обновления с удаленного сервера. Поскольку данные меняются не очень часто, это обновление следует проводить раз в неделю. Я хочу дать пользователю возможность выбрать день недели и время для обновления (и, при желании, полностью отключить эту функцию).

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

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

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

Так вот, я '

  • Этот таймер используется для запуска выполнения кода через 7 дней в будущем. (т.е. каждую неделю в определенный день недели и время)
  • Код должен запускаться БЕЗ пробуждения телефона, если он «спит» (экран затемнен).
  • При запуске кода никакие действия запускаться не должны. т.е. на экране не появляется никаких приложений.
  • Выполняемый код должен получить некоторые данные из Интернета. Если в это время подключение к Интернету недоступно, следует установить таймер на 30 минут, а затем повторить попытку.
  • После завершения выполнения кода таймер будет установлен на следующий интервал, который наступит через 7 дней.
  • Таймер должен запускаться при загрузке системы, например, если я перезагружаю телефон, таймер должен определить следующую дату для выполнения кода и запланировать таймер. Это должно работать без ЛЮБОГО взаимодействия с пользователем! (т.е. без запуска самого приложения)
  • В спящем режиме поток / служба / таймер / что бы то ни было не должны потреблять системные ресурсы, если это возможно ...
  • Мне нужна простая задача cron для unix.
  • Думаю, кто-нибудь знает "newsrob" для Android? Я хочу понять то же самое, что и служба newsrob-updateservice.

    1
    задан gobernador 28 February 2012 в 05:06
    поделиться