今天同事遇到一问题, 用alarm manager来做定时任务, 比如每隔5秒执行一次操作。 结果在5.1的机器上的测试结果是每隔60秒才执行一次,而在低于5.1的系统上则是按预期的以5秒为周期执行。。。
一顿google之后发现5.1为了做耗电量的优化,android将alarm manager的行为改了, 间隔小于1分钟的定时请求,系统将其调整为1分钟。。。
这意味着, 之前的用alarm manager执行定时任务且间隔小于1分钟的, 在5.1系统上将不能按期望工作了
可选方案,handler, timertask, scheduledExecutor等
参考:
https://code.google.com/p/android/issues/detail?id=161244
https://commonsware.com/blog/2015/03/23/alarmmanager-regression-android-5p1.html
http://stackoverflow.com/questions/29914724/scheduling-alarm-for-every-second-in-android-5-1