AlarmManager重复执行频率稳定性探讨 本帖最后由 JebySin 于 2014-05-30 19:13:32 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最近开发遇到一个需求,要求应用在后台一直按给定的时间间隔重复访问网络。网上查资料,因此用到了AlarmManage。做出来后发现有缺陷,即:执行的频率在屏幕熄灭后变得很不稳定。比如,每隔10秒执行一次,屏幕熄灭后就出现有时每隔2秒,有时每隔16秒......注意需用真机测试,并且不要链接数据线,屏幕熄灭后才会出现这个情况。这个是什么情况,百思不得骑姐,求指教。我也不会,帮你顶一下吧 我以前做一个定时器也碰到过类似的问题,我的解决方案是做一个后台服务,并注册广播。注意参数AlarmManager.RTC_WAKEUP和AlarmManager.ELAPSED_REALTIME_WAKEUP。详细的我不是很记得。 AlarmManage 放到服务里试试或者使用线程来控制 我之前的项目是用服务控制线程实现的 因为服务容易起来 然后就去启动线程执行任务另外 你说的 AlarmManager时间不准 可能是你使用的时钟类型不对AlarmManager.ELAPSED_REALTIME表示闹钟在手机睡眠状态下不可用AlarmManager.ELAPSED_REALTIME_WAKEUP表示闹钟在睡眠状态下会唤醒系统并执行提示功能AlarmManager.RTC表示闹钟在睡眠状态下不可用,该状态下闹钟使用绝对时间AlarmManager.RTC_WAKEUP表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟使用绝对时间前2个是相对时间 即相对系统起来的时间 所以使用间隔定时的闹钟 使用前两个 根据需要选择是否在休眠状态下也触发后2个是绝对时间 即某年某月某日 时分秒 具体的时间点触发的事件使用这个 当然 定时间隔的也可以相对时间是不会随设置时间日期改变的最后有个NB的AlarmManager.POWER_OFF_WAKEUP,不过有提到不能用的情况,你可以试试 谢谢各位,我就是服务里面用的AlarmManager执行任务。我分析是由于屏幕熄灭后手机休眠就停止了服务,但是由于我的服务onStartCommand方法参数是START_STICKY,服务接着又重启。目前的解决办法是不让手机休眠,保持手机CPU唤醒,但这样有可能对手机待机时间造成影响。 我在service中,使用alarmManager 注册广播,使用BorcastRecevier来接收,然后启动service;你可以试试;我觉得主要的onstartcommond的返回值导致的时间不准确的问题; 将app名字改成中文 关于Mediaplayer的reset()的疑问。。。。 怎么用一个软件来模拟android的多点触摸上报 ANDROID按钮长按时如何切换图片 [入门必读]android移动开发 十个 案例 值得学习打包 android2.2 视频通话图象质量问题 用jsoup解析登录后页面 android 媒体库刷新问题 怎样禁止android程序后台启动? 两个应用可否共用一个第三方的APPKEY? socket 开放一个端口 做分发器 链接服务器能接收的了么! 关于cwm recovery
网上查资料,因此用到了AlarmManage。做出来后发现有缺陷,即:执行的频率在屏幕熄灭后变得很不稳定。比如,每隔10秒执行一次,屏幕熄灭后就出现有时每隔2秒,有时每隔16秒......
注意需用真机测试,并且不要链接数据线,屏幕熄灭后才会出现这个情况。
这个是什么情况,百思不得骑姐,求指教。
我也不会,帮你顶一下吧
我的解决方案是做一个后台服务,并注册广播。
注意参数AlarmManager.RTC_WAKEUP和AlarmManager.ELAPSED_REALTIME_WAKEUP。
详细的我不是很记得。
或者使用线程来控制
另外 你说的 AlarmManager时间不准 可能是你使用的时钟类型不对
AlarmManager.ELAPSED_REALTIME表示闹钟在手机睡眠状态下不可用
AlarmManager.ELAPSED_REALTIME_WAKEUP表示闹钟在睡眠状态下会唤醒系统并执行提示功能
AlarmManager.RTC表示闹钟在睡眠状态下不可用,该状态下闹钟使用绝对时间
AlarmManager.RTC_WAKEUP表示闹钟在睡眠状态下会唤醒系统并执行提示功能,该状态下闹钟使用绝对时间前2个是相对时间 即相对系统起来的时间 所以使用间隔定时的闹钟 使用前两个 根据需要选择是否在休眠状态下也触发
后2个是绝对时间 即某年某月某日 时分秒 具体的时间点触发的事件使用这个 当然 定时间隔的也可以相对时间是不会随设置时间日期改变的最后有个NB的AlarmManager.POWER_OFF_WAKEUP,不过有提到不能用的情况,你可以试试
我分析是由于屏幕熄灭后手机休眠就停止了服务,但是由于我的服务onStartCommand方法参数是START_STICKY,服务接着又重启。
目前的解决办法是不让手机休眠,保持手机CPU唤醒,但这样有可能对手机待机时间造成影响。