最近 google 推出了 push-to-device 服务,但它仅在 2.2 及更高版本中可用。
我需要在我的应用程序中使用类似的系统,并且我正在尝试绕过限制。
问题是电池寿命。由于必须立即通知用户有关服务器上的更改,我想实现一个将在后台运行的服务(标准 Android 服务)并查询服务器以获取更新。
当然,即使每秒查询一次服务器,也会消耗大量带宽和电池,所以我的问题是:如果服务器将响应保持一段时间,是否会有所不同?(彗星类型ajax请求背后的想法)
像这样工作:
- 设备发送数据更新请求
- 服务器获取请求并循环一分钟,检查每次迭代是否有更新
- 如果有更新,服务器将响应发送回更新
- 如果不是,则服务继续进行下一次迭代。
- 一分钟后,它终于发送没有数据可用的响应
- 响应后(无论是空的还是有数据的)Android 都会触发另一个这样的请求。
它肯定会花费更少的带宽,但它会消耗更少(甚至更多)的电池吗?