您的位置:首页 > 其它

使用AlarmManager完成应用心跳

2013-04-19 16:50 176 查看
在开发互联网应用时候,我们常常要使用心跳来保证客户端与服务器的连接。怎么完成心跳很关键,前几天看了下某推送公司的架构介绍,在说道客户端心跳功能时,说道如果使用Timer或者专门开起一个线程来做心跳的工作,会浪费CPU工作时间,而且也会更多的消耗电量。相对来说使用AlarmManager来处理心跳的话,使用的是系统全局的定时服务,会一定成都减少CPU的消耗,耗电量也会少很多。正好这段时间也要做推送,就顺便学习了一下怎么做心跳,写了一个demo,分享给大家,也和大家讨论一下这么做的利弊。

关闭AlarmManager的介绍,参考这篇文章:http://jinguo.iteye.com/blog/799778

AlarmManager处理心跳间隔的相关代码如下:

?
代码片段,双击复制

定义一个广播接收器,在接收器中处理与服务器的连接等操作:

?
代码片段,双击复制

具体代码见附件吧,再次还有两个疑问,不是很明白。AlarmManager.ELAPSED_REALTIME和AlarmManager.ELAPSED_REALTIME_WAKEUP分别是在系统睡眠状态时不唤醒和唤醒系统。首先不是很明白系统睡眠状态到底是什么时候才会进入,其次作为心跳要不要唤醒系统。这两个疑问希望有高手能够指点。



HeartbeatDemo.rar

1.29 MB, 下载次数: 6, 下载积分: e币 -2 元
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐