了解推送

移动设备于服务器获取数据的两种主要方式,一种统一为pull,通过轮询的方式向服务器获取,另一种为push,由服务器下发。

第一种方式有一个较大的缺点,性能开销大, 移动设备耗电

因此选用推送的方式下发消息,
实现的方式通过长链接来实现,其中因为NAT的存在, 为了不让NAT 表失效,我们需要定时的发心跳,以刷新NAT 表项,因此需要客户端定心发送心跳包来维持长链接
实现方式可以是:

  1. AlarmManage ,AlarmManager 是Android 系统封装的用于管理RTC 的模块,RTC (Real Time Clock) 是一个独立的硬件时钟,可以在CPU 休眠时正常运行,在预设的时间到达时,通过中断唤醒CPU。这意味着,如果我们用AlarmManager 来定时执行任务,CPU 可以正常的休眠,只有在需要运行任务时醒来一段很短的时间。极光推送的Android SDK 就是基于这种技术实现的。
  1. thread.sleep + while的方式 这种方式和timer方式都存在增加service被回收的风险,因此还是建议使用AlarmManager的方式
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容