在开发互联网应用时候,我们常常要使用心跳来保证客户端与服务器的连接。怎么完成心跳很关键,前几天看了下某推送公司的架构介绍,在说道客户端心跳功能时,说道如果使用Timer或者专门开起一个线程来做心跳的工作,会浪费CPU工作时间,而且也会更多的消耗电量。相对来说使用AlarmManager来处理心跳的话,使用的是系统全局的定时服务,会一定成都减少CPU的消耗,耗电量也会少很多。正好这段时间也要做推送,就顺便学习了一下怎么做心跳,写了一个demo,分享给大家,也和大家讨论一下这么做的利弊。 关闭AlarmManager的介绍,参考这篇文章:http://jinguo.iteye.com/blog/799778 AlarmManager处理心跳间隔的相关代码如下:
定义一个广播接收器,在接收器中处理与服务器的连接等操作:
具体代码见附件吧,再次还有两个疑问,不是很明白。AlarmManager.ELAPSED_REALTIME和AlarmManager.ELAPSED_REALTIME_WAKEUP分别是在系统睡眠状态时不唤醒和唤醒系统。首先不是很明白系统睡眠状态到底是什么时候才会进入,其次作为心跳要不要唤醒系统。这两个疑问希望有高手能够指点。 |
使用AlarmManager完成应用心跳
最新推荐文章于 2021-05-31 17:08:54 发布