2013-09-23 3 views
-1

Я проверяю документацию Google в течение нескольких дней, но я не уверен, как мне это сделать.Какую услугу следует выполнять для непрерывной фоновой задачи?

Идея над моей головой - создать службу, которая работает в фоновом режиме (навсегда), даже если устройство перезагрузится и т. Д. (Например, WhatsApp). Эта услуга должна проходить через Интернет каждые 30 минут только по четвергам (например).

Однако, я не уверен, если я создать классические службы, один с BroadcastReceiver и т.д.

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

+0

Что вы попробовали? – Snicolas

+0

Я ничего не пробовал. Я спрашиваю, что мне следует искать для выполнения моих требований. Я не ищу код помощи, просто некоторые советы о том, что я должен искать, поскольку я нахожу много информации о 2-3 видов услуг, но я не могу соответствовать ни одному из них по моим требованиям. – Reinherd

+0

Пожалуйста, прочтите на Android OS, приложение, работающее в фоновом режиме, следует избегать в любое время! – RvdK

ответ

4

Никто не хочет приложения, которое работает вечно в фоновом режиме. Вы хотите, чтобы приложение, которое периодически запускается (в фоновом режиме), делает это, и снова спит.

Кроме того, в android ничто никогда не будет работать «навсегда». Продолжительность жизни зависит от ОС Android, то есть, если он хочет ресурсов, он может убить ваше приложение.

Таким образом, вы могли бы две вещи:

  • BroadcastReceiver + Service: БР прислушивается к Android загрузился Intent, затем запускает свой сервис, который может работать на неопределенное время (с использованием startService).
  • AlarmManager + BroadcastReceiver (+ Service): создайте аварийные сигналы через определенные промежутки времени, чтобы ваш БР запустился. Затем БР может запустить Service, который выполняет тяжелую работу. После того, как Служба сделана, она должна убить себя!

IntentService не может быть использован, так как он будет убивать себя, когда нет больше задач BroadcastReceived не могут быть использованы отдельно, так как он может жить только в течение нескольких секунд (10 секунд)

ТЛ; др

Не делайте сервис, который работает вечно. Создать Service действительно ли это задача и убить себя, когда закончите. Затем запустите это Service.

+0

Я думаю, что второй вариант будет лучшим в моем случае. Спасибо. – Reinherd

Смежные вопросы