Recently google introduced push-to-device service, but it's only available 2.2 and up.

I need a similar system in my app, and I'm trying to get around limitations.

The issue is battery life. Since the user must be notified immediately about the changes on the server, I thought to implement a service that would live in the background (standard Android service) and query the server for updates.

Of course, querying the server, even each second, will cost a lot of bandwidth, as well as battery, so my question is this: does it make a difference if the server is holding the response for some period of time? (the idea behind Comet type ajax request)

Works like this: 

* Device sends request for data update
* Server gets the request and goes in the loop for one minute, checking if there are updates on each iteration
	+ If there are updates, server sends response back with updates
	+ If not, service goes on to the next iteration.
* After a minute, it finally sends the response that no data is yet available
* After response (no matter whether empty or with data) Android fires another such request.

It will definitely cost less bandwidth, but will it consume less (or even more) battery?