Background tasks which require the network (such as checking for new email, twitter/RSS/weather/facebook/stock updates, new IMs, synchronizing contacts, etc) are likely to be independent for many existing applications. This means that the GSM radio needs to be spun up more often than necessary.
The appropriate API or service could help coordinate and consolidate this traffic. For example, applications could register minimum and maximum update frequences, as well as expectations about the amount of data transfer that will be needed. A central coordinator could then bring up the radio/network and notify applications via DBUS to perform their communications. The applications would then acknowledge when communications have completed.
This daemon/service could also:
- Allow the user to centrally tune their network-related battery life (eg, by setting a multiplier that could apply across all applications).
- Dynamically tune refresh rates depending on battery life/usage or type of network (eg, decreasing refresh frequency when the radio needs a higher transmit power).
- Give users and developers (and extras-testing) better visibility into which applications are impacting radio-related battery life.
- Possibly interface into a central PUSH service without requiring all application developers to implement this separately.
(Perhaps this should be a separate brainstorm idea rather than a solution here?)