Android 平台上长连接的实现
2013-03-14 16:07
218 查看
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类可以应用到以下场景:
1、定时循环启动组件(Component,如Activity、BroadcastReceiver),这样能替代在后台启动Service进行定时提醒任务
2、实现闹钟的按小时、天、周等形式的定时循环提醒功能。
为了不让 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类可以应用到以下场景:
1、定时循环启动组件(Component,如Activity、BroadcastReceiver),这样能替代在后台启动Service进行定时提醒任务
2、实现闹钟的按小时、天、周等形式的定时循环提醒功能。
相关文章推荐
- Android平台上长连接的实现
- Android 平台上长连接的实现
- Android 平台上长连接的实现
- Android 平台上长连接的实现
- Android 平台上长连接的实现
- Android平台如何实现蓝牙A2DP自动连接
- android中自动提示、补全、连接的功能实现
- 使用mina实现Android长连接
- 自己动手实现Android平台手写体数字识别之识别算法准备
- Android平台利用ShareSDK组件实现 第三方登录
- smack 源码分析- PacketWriter (android上实现长连接)
- 微信小程序-实现扫码自动连接wifi(android)
- Android网络连接----使用URLConnection实现从服务器上下载
- Cocos2d-x 3.x 头像选择器,本地相册与拍照+头像编辑功能(Android、IOS双平台实现)
- Android 蓝牙( Bluetooth)耳机连接分析及实现
- android平台实现橡皮擦功能
- Android平台中文输入法的设计与实现
- Cocos2d-x游戏在Android平台使用友盟社会化组件进行截图分享的实现
- 利用Ptrace在Android平台实现应用程序控制
- Android平台的崩溃捕获机制及实现