java“报警管理器设置重复”在1分钟内没有重复?
我正在尝试使用alarm manager设置后台服务
Intent alarmIntent = new Intent(this, AlarmReceiver.class);
PendingIntent pending = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.cancel(pending);
//alarmManager.SetExact(AlarmType.RtcWakeup, SystemClock.ElapsedRealtime() + 5 * 1000, pendingIntent);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,SystemClock.elapsedRealtime()+15*1000 , 15*1000, pending);
但它不是每15秒工作一次。有时在20秒后工作,有时在1分钟后工作。但是,当我设置1分钟(60*1000)时,它也不是精确的时间。很近。(1分4秒,1分13秒)为什么会这样
# 1 楼答案
自API 19以来,重复报警在默认情况下是不准确的
解决方法是在x秒内设置一个简单的精确报警,然后在触发报警时递归设置另一个报警。这个密码对我来说很有用。此外,您只需在XML中定义服务:
从主要活动开始,你可以这样开始:
安排报警的服务与接收报警的服务相同: