【发布时间】:2015-01-04 14:52:36
【问题描述】:
我的代码:
Calendar calSet = Calendar.getInstance();
calSet.set(Calendar.HOUR_OF_DAY, 11);
calSet.set(Calendar.MINUTE, 20);
calSet.set(Calendar.SECOND, 0);
calSet.set(Calendar.MILLISECOND, 0);
PendingIntent pi=PendingIntent.getBroadcast(context,0,myIntent,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP,calSet.getTimeInMillis(),pi);
然后说,我在 11:30 执行。警报立即触发(这是预期的)。 但是,当我使用时也是一样的
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calSet.getTimeInMillis(),24*60*60*1000,pi);
警报不会立即触发。最多有 1 分钟的延迟(这是意料之外的)。 我希望重复警报立即触发,没有任何延迟。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
WILD GUESS:您的目标是 API 级别 19+
-
@Der Golem minSdkVersion 11 targetSdkVersion 21
-
你看到了吗?我是对的 - 这就是我使用 targetSdkVersion 18. 的原因
-
developer.android.com/reference/android/app/AlarmManager.html:
Note: Beginning with API 19 (KITKAT) alarm delivery is inexact: the OS will shift alarms in order to minimize wakeups and battery use. -
不是每个人都会喜欢我的回答。许多人是时尚追随者,因此他们关注材料设计。如果发布这样的答案,我会冒很多反对票的风险。 @hqt 答案是正确的 (+1),因此您可以接受 他的 答案。
标签: android alarmmanager alarm android-alarms repeatingalarm