4

Здравствуйте, у меня есть приложение, которое отправляет данные на сервер каждые 5 минут по wi-fi. Я написал сервис, в котором реализовал пару таймеров. При закрытии приложения все работает прекрасно, но стоит нам дождаться момента, когда экран погаснет, сервис перестает отсылать данные. Но стоит нам зажечь обратно экран, как приложение опять начинает отсылать данные.
Я хочу добиться того, чтобы сервис не останавливался, т.е. данные отсылались всегда, независимо от состояния экрана. Вы можете что-нибудь посоветовать?

Спасибо всем за ответы, мне помогло использование Power Manager PARTIAL_WAKE_LOCK http://developer.android.com/reference/android/os/PowerManager.html . Правда пришлось пожертвовать расходом энергии

3 ответа 3

3

Как написали ниже, если сервис висит постоянно - это очень некрасиво по отношению к батарее. Однако любая платформа предоставляет такое решение, как background tasks - как понятно из названия, это задачи, которые выполняются в фоновом режиме; насколько помню из общения с wp, есть и опция пробуждения раз в (некоторый период времени). Это не гарантирует бесконечность выполнения сервиса (при переполнении списка бекграундовых тасков ОС убьет самые старые), но является общепринятым подходом.

2

CWAC Wakeful, например. Но за такие решения авторов надо сжигать на кострах, ибо оно батарею сжирать будет постоянно.

2

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

а по существу, при старте сервиса

int NOTIFICATION_ID = 123123;
...
startForeground(NOTIFICATION_ID, new Notification());

если не нужен больше сервис, не забываем

stopForeground(true);
0

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.