Android AlarmManager 定时会 “失效” 的问题
来源:互联网 发布:陈丹婷淘宝 编辑:程序博客网 时间:2024/05/16 23:43
获取推送信息的service已经编写完毕,定时这块,先想到使用AlarmManager服务,但是在设定重复任务的时候发现设定好了interval时间后,任务并没有按期望启动。
开发测试机:小米2S(非开发版,未ROOT)
在使用小米机器(2S)开发时候发现当使用AlarmManager.RTC 类型时,interval会按照预期的设定来执行,如interval=3分钟,那么就是每3分钟执行一次任务,但是如果使用RTC_WAKEUP则发现interval会取5的步长来执行,比如interval 是3分钟,那么实际是按5分钟来repeat的,7分钟则是10,以此类推。(在虚拟机里测试时,则没有这个限制,可以随意设定interval时间并且按时执行)
miui的开发论坛上有帖子说,这样设计是为了节省电量。
附上AlarmManager中的type
public static final int ELAPSED_REALTIME
// 当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是相对时间,是从系统启动后开始计时的,包括睡眠时 间,可以通过调用SystemClock.elapsedRealtime()获得。系统值是3 (0x00000003)。
public static final int ELAPSED_REALTIME_WAKEUP
//能唤醒系统,用法同ELAPSED_REALTIME,系统值是2 (0x00000002) 。
public static final int RTC
//当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是绝对时间,所用时间是UTC时间,可以通过调用 System.currentTimeMillis()获得。系统值是1 (0x00000001) 。
public static final int RTC_WAKEUP
//能唤醒系统,用法同RTC类型,系统值为 0 (0x00000000) 。
Public static final int POWER_OFF_WAKEUP
//能唤醒系统,它是一种关机闹铃,就是说设备在关机状态下也可以唤醒系统,所以我们把它称之为关机闹铃。使用方法同RTC类型,系统值为4(0x00000004)。
// 当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是相对时间,是从系统启动后开始计时的,包括睡眠时 间,可以通过调用SystemClock.elapsedRealtime()获得。系统值是3 (0x00000003)。
- Android AlarmManager 定时会 “失效” 的问题
- Android AlarmManager 定时会 “失效” 的问题
- 小米手机AlarmManager失效的问题
- 小米手机AlarmManager失效的问题
- 小米手机AlarmManager失效的问题
- Android定时执行(AlarmManager) [
- Android,定时任务AlarmManager
- Android AlarmManager的一些问题
- Android AlarmManager的一些问题
- Android AlarmManager的一些问题
- android Service重启问题,结合AlarmManager实现定时任务
- Android系统定时服务AlarmManager
- android 后台定时提醒(Service,AlarmManager的使用)
- 谈谈对Android定时任务中AlarmManager的理解
- Android Service,AlarmManager组合实现定时任务踩的坑
- android AlarmManager的时间设定问题
- Android AlarmManager的时间设定问题
- android问题2-AlarmManager
- Virtualbox中的虚拟机和主机ping通
- ABAP学习笔记
- 冒泡排序(Bubble Sort)原理及Java实现
- jdbc与oracle和mysql连接工具类的写法
- Spring3.0 入门进阶(4):注解式控制器简介
- Android AlarmManager 定时会 “失效” 的问题
- 快速排序的算法实现
- 解决在IBM JDK下公钥验签失败的问题
- 数据库创建的表进行了更改时弹出“阻止保存要求重新创建表的更改”错误
- iOS开发笔记之多点触控(一)处理触摸的4个方法
- [2009.09.13]透视内幕:美国陆战队一号[2009年美国记录片]
- XE4编译D7的DLL工程文件报错 Invalid PLATFORM variable "MCD".
- Android文件读写实例代码
- oracle11G新版本增加对原始数据文件验证过程