- If the server gets something to send, it uses the request path to send a reply, and thus imitates a push.
- If the server has nothing to send by the time the timeout comes, it sends back a null reply and the phone tries again with the same or longer timeout.
- If the server doesn't send anything within the timeout, the phone assumes the connection doesn't last that long, and sends another request with a shorter timeout.
So the timeout adjusts to be as long as the shortest amount of time that your connection is good for without any activity. In most cases, that's around 30 minutes, and thus the push would use about the same battery as a 30 minute fetch.
If, on the other hand, your connection dies every ten minutes of inactivity, the phone will have to shorten the timeout to nine minutes, and then the push uses three times the battery of a 30 minute fetch.