Android 平台上长链接的实现
为了避免让 NAT 表失效,咱们须要定时的发心跳,以刷新 NAT 表项,避免被淘汰。
Android 上定时运行任务经常使用的方法有2种,一种方法用 Timer,另外一种是AlarmManager。
Timer
Android 的 Timer 类能够用来计划须要循环执行的任务,Timer 的问题是它须要用 WakeLock 让 CPU 保持唤醒状态,这样会大量消耗手机电量,大大减短手机待机时间。这种方式不能知足咱们的需求。
AlarmManager
AlarmManager 是 Android 系统封装的用于管理 RTC 的模块,RTC (Real Time Clock) 是一个独立的硬件时钟,能够在 CPU 休眠时正常运行,在预设的时间到达时,经过中断唤醒 CPU。
这意味着,若是咱们用 AlarmManager 来定时执行任务,CPU 能够正常的休眠,只有在须要运行任务时醒来一段很短的时间。
Android系统提供了AlarmManager类来管理闹钟定时提醒任务。经过AlarmManager实现定时提醒及定时循环提醒。那么,AlarmManager类能够应用到如下场景:
一、定时循环启动组件(Component,如Activity、BroadcastReceiver),这样能替代在后台启动Service进行定时提醒任务
二、实现闹钟的按小时、天、周等形式的定时循环提醒功能。
实现参考:http://www.cnblogs.com/jico/archive/2010/11/03/1868361.html html