Search code examples
androidandroid-c2dm

How does Android C2DM improve bandwidth useage?


I keep reading that using Android C2DM is the most efficient solution, bandwidth wise, for keeping track of updates. However, I'm missing exactly how C2DM is more efficient then say, a solution that does polling every 5 minutes.

My understanding is: C2DM works by maintaining a persistent TCP/IP connection. Maintaining said connection means keeping the radio on (I think this is where I'm wrong?) http://developer.android.com/training/efficient-downloads/efficient-network-access.html

So wouldn't keeping the TCP/IP connection open keep the radio on at all times, even if it is in low-power mode?

While polling every 5 minutes, even width the latency is the radio turning on/off, would for a 3 second download, keep the radio in high power mode for 5 seconds and low power mode for 12 seconds (latency shutting down).

Thanks for any help clearing this up.


Solution

  • Instead of polling the server for changes which uses bw and data, the server will notify you when something have changed so only then you can retrieve the changes.