了解推送

移动设备于服务器获取数据的两种主要方式,一种统一为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的方式

你可能感兴趣的:(了解推送)