@
honeycomb 我的使用习惯是,不用时关闭数据连接。我不需要所有的后台推送消息(包括 qq 微信)。而我周边的小白用户,他们有些一直开着数据连接,但所需要的推送也只有 qq 和微信(他们装的应用远不止这些,但是需要推送的就这两个)。当然还有很多应用会推送一些他们不需要的无用信息。
还有一些比较会玩安卓的网友,他们也基本只需要 qq 和微信的推送(有些还会有支付宝),而且他们会用 my android tools 禁用其大部分服务,这样就很省电了。
所以说:
1.大部分人需要推送的应用真的很少;
2.即使是需要推送的应用,维持基本的推送功能所需要的电量也不是很多,耗电主要还是由于应用在后台做一些对用户无益的事。
因此没有必要为了省电而让所有推送通过 google 的服务器。
最好的方法当然还是规范化推送,建立一个本地的统一的推送框架,用户可以手动禁止应用除推送以外的后台服务。因为已经标准化了,所以不用再用 my android tools 这种靠猜测、尝试来禁用服务,也不会误杀。应用在后台只有最基本的推送消息功能,也不怎么耗电。
可以类比于 Imap Idle 协议(
http://blog.sina.com.cn/s/blog_5d2184eb0100py1t.html ),本地推送框架就好像一个邮件客户端,应用需要推送功能就好像添加了一个支持 imap idle 的邮箱帐号一样,应用本身后台被禁止,无法再做多余的事。
但是目前不存在这样一个框架,所以还是让需要推送的应用长驻通知栏为好。应用也应约束自己 ,不要开那么多对用户无益的服务。至于你提到的国内银行的云闪付卡密钥的推送,要么是它做了多余的事情,要么是为了更高的安全性需要这么复杂的功能因此需要耗这么多电。如果是为了安全性,那 GCM 也无法替代它吧。