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、实现闹钟的按小时、天、周等形式的定时循环提醒功能。

更多相关文章

  1. Android的Handler机制详解3_Looper.looper()不会卡死主线程
  2. Android(安卓)Vibrator使用
  3. Android(安卓)之 AsyncTask 异步任务
  4. Android(安卓)任务和回退堆栈---启动任务
  5. Android(安卓)后台任务(五)Service
  6. Windows环境下Android(安卓)Studio系列4—界面介绍
  7. Android监听Home键和最近任务
  8. android读取工程里文件并显示在界面
  9. Android中对后台任务线程性能的说明及优化

随机推荐

  1. 在 Ubuntu 上使用源码安装 OpenResty
  2. Linux 发行版添加软件源
  3. Kubernetes 应用迁移
  4. 今日学习内容 2021-12-20
  5. [开胃小菜]vscode常用插件与字体
  6. 通过 Maven 插件自动部署应用
  7. day1 note
  8. 在阿里云镜像站下载KiCad
  9. Manjaro Linux 入门使用教程
  10. 前端开发工具安装及使用小结