Android 平台上长连接的实现
来源:互联网 发布:linux查看gz文件内容 编辑:程序博客网 时间:2024/04/27 13:42
为了不让 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、实现闹钟的按小时、天、周等形式的定时循环提醒功能。
实现参考:http://www.cnblogs.com/jico/archive/2010/11/03/1868361.html
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、实现闹钟的按小时、天、周等形式的定时循环提醒功能。
实现参考:http://www.cnblogs.com/jico/archive/2010/11/03/1868361.html
0 0
- Android 平台上长连接的实现
- Android 平台上长连接的实现
- Android 长连接实现
- android长连接实现
- smack 源码分析一(android上实现长连接)
- smack 源码分析- PacketWriter (android上实现长连接)
- smack 源码分析- PacketReader (android上实现长连接)
- smack 源码分析1(android上实现长连接)
- smack 源码分析一(android上实现长连接)【1】
- smack 源码分析- PacketWriter (android上实现长连接)【2】
- smack 源码分析- PacketReader (android上实现长连接)【3】
- smack 源码分析一(android上实现长连接)
- smack 源码分析- PacketWriter (android上实现长连接)
- smack 源码分析- PacketReader (android上实现长连接)
- smack 源码分析一(android上实现长连接)【1】
- smack 源码分析- PacketWriter (android上实现长连接)2
- smack 源码分析- PacketReader (android上实现长连接)【3】
- android实现长连接流程图
- 解决加载大量图片导致内存溢出的三种办法http://www.360doc.com/content/13/0409/11/7857928_277107102.shtml
- VB 无键盘鼠标操作锁屏
- iOS7新特征汇总[05]:初窥UIKit Dynamics
- 最长递增子序列
- boost(C++库)
- Android 平台上长连接的实现
- 关于QListWidget的Drag和Drop用法
- java native interface JNI 调用Java方法
- UICollectionView和UIKit Dynamics
- JAVA-从题目看算法,将输入字符串进行排序并输出
- GMM模型中gconst的计算
- java nio整理
- 第十一周-项目一-储存班长信息的学生类
- hadoop使用lzo压缩文件笔记 (CDH3u1)