设置闹钟 1 分钟,但 5 分钟后响起

Posted

技术标签:

【中文标题】设置闹钟 1 分钟,但 5 分钟后响起【英文标题】:Set alarm for 1 min but it called after 5 minutes 【发布时间】:2016-08-10 06:35:04 【问题描述】:

我设置了 1 分钟的闹钟,但每隔 5 分钟就会响一次。

AlarmManager alarmManager = (AlarmManager)getActivity().getSystemService(Context.ALARM_SERVICE);  
Intent intent = new Intent(getActivity(), MyBroadcastReceiver.class);
intent.setAction("com.example"); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); //pending intent
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, new Date().getTime(), 60000, pendingIntent);  //time duration is 60 seconds

【问题讨论】:

【参考方案1】:

使用 alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, new Date().getTime(), 60000, pendingIntent); //持续时间是60秒而不是 alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, new Date().getTime(), 60000, pendingIntent); //持续时间为60秒

【讨论】:

这两种方法有什么区别?你能解释一下吗? setInexactRepeating 比传统上由 setRepeating 提供的严格重复更节能 但是 setInexactRepeating 不完全报警 我稍后检查了它,它在 sumsung 设备中 5 分钟后调用。在我的联想设备中,每 1 分钟一次就可以正常工作。

以上是关于设置闹钟 1 分钟,但 5 分钟后响起的主要内容,如果未能解决你的问题,请参考以下文章

JAVA可视化闹钟源码

AppWidget每分钟更新一次

如何计算设定时间的剩余小时数

安排后台任务

即使在重启设备后如何使警报启动?

怎么设置几天后的闹钟提醒?