Недавно google представила сервис push-to-device, но он доступен только 2,2 и выше.Аккумулятор Android при работе с http
Мне нужна подобная система в моем приложении, и я пытаюсь преодолеть ограничения.
Вопрос - срок службы батареи. Поскольку пользователь должен немедленно получать уведомление об изменениях на сервере, я решил реализовать службу, которая будет жить в фоновом режиме (стандартная служба Android), и запросить сервер для обновлений.
Конечно, запрос на сервер, даже каждую секунду, будет стоить большой полосы пропускания, а также батареи, поэтому мой вопрос заключается в следующем: имеет ли значение разница, если сервер держит ответ в течение некоторого периода времени ? (Идея запроса типа АЯКСА Comet)
работает так:
- Устройства посылает запрос на обновление данных
- Сервер получает запрос и переходит в петле в течение одной минуты, проверяя, есть ли обновление на каждой итерации
- Если есть обновления, сервер отправляет ответ с обновлениями
- Если нет, служба переходит к следующей итерации.
- Через минуту, он, наконец, посылает ответ, что никакие данные не доступны пока
- После ответа (независимо от того, является ли пустой или с данными) выстреливает Android другой такой запрос.
Это определенно будет стоить меньше полосы пропускания, но будет ли оно потреблять меньше (или даже больше) батареи?
Благодарим за отзыв. Я думал о написании примера приложения, и я буду в скором времени делать это в ближайшем будущем. И о запросе. Это простой запрос, например http://someserver.com/getdata И после этого устройство ожидает ответа, если данные доступны, тогда он получает ответ неточно или через какое-то время (менее минуты) , иначе он просто ждет, в то время как основной материал происходит на сервере. –