求解 AlarmManager setRepeating 不准时问题(虚拟机准时,真机不准时)

沃克哈德丶 2016-02-28 11:43:09
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000, pi);
在虚拟机上测试时,完全没有问题,挪到真机上测试时就不准了(三星手机自带系统)。
如果用set方法则在虚拟机和真机上都准时。
这个问题是不是和小米系统下出现的那个问题一样啊?求解决方案!
...全文
660 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
泥巴城 2018-04-19
  • 打赏
  • 举报
回复
第三方系统很多都对AlarmManager做了限制,虽然代码中设置的间隔时间是按照自己意愿设置的,但是实际在真机上是取决于第三方系统的。比如小米,华为这些第三方系统都对原生的Android系统进行了大改,所以在使用AlarmManager时在这些机型上都是不准的。目前测试的手机就只有这些,其他系统未测试。
awaken233 2016-06-28
  • 打赏
  • 举报
回复 1
Android 4.4 版本开始,Alarm 任务的触发时间将会变得不准确, 有可能会延迟一段时间后任务才能得到执行。这并不是个 bug,而是系统在耗电性方面进行 的优化。系统会自动检测目前有多少 Alarm 任务存在,然后将触发时间将近的几个任务放在 一起执行,这就可以大幅度地减少 CPU 被唤醒的次数,从而有效延长电池的使用时间。 当然,如果你要求 Alarm 任务的执行时间必须准备无误,Android 仍然提供了解决方案。 使用 AlarmManager 的 setExact()方法来替代 set()方法,就可以保证任务准时执行了。
沃克哈德丶 2016-02-28
  • 打赏
  • 举报
回复
自己顶一下!

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧