Code Bye

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

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000, pi);
在虚拟机上测试时,完全没有问题,挪到真机上测试时就不准了(三星手机自带系统)。
假如用set方法则在虚拟机和真机上都准时。
这个问题是不是和小米系统下出现的那个问题一样啊?求指导决方案!
解决方案

20

       Android 4.4 版本开始,Alarm 任务的触发时间将会变得不准确,
有可能会延迟一段时间后任务才能得到执行。这并不是个 bug,而是系统在耗电性方面进行
的优化。系统会自动检测目前有多少 Alarm 任务存在,然后将触发时间将近的几个任务放在
一起执行,这就可以大幅度地减少 CPU 被唤醒的次数,从而有效延长电池的使用时间。
当然,假如你要求 Alarm 任务的执行时间必须准备无误,Android 仍然提供了解决方案。
使用 AlarmManager 的 setExact()方法来替代 set()方法,就可以保证任务准时执行了。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求指导 AlarmManager setRepeating 不准时问题(虚拟机准时,真机不准时)