如何设置重复闹钟,以便在按下按钮时立即触发并每4小时重复一次。?
alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),
4*60*60*1000, alarmIntent);
重复自身,但在按下按钮时不立即启动。火需要5分钟。
我在这里做错了什么?
我更改了以下代码并立即触发警报
alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, AlarmManager.INTERVAL_FIFTEEN_MINUTES, 4*60*60*1000, alarmIntent);
但每4小时不重复一次。如何每4小时重复一次报警?
答案 0 :(得分:0)
使用setRepeating
代替setInexactRepeating
。
当您希望闹钟在指定时间内触发时使用setInexactRepeating
,但实际上并不需要它在此时准确触发。
此方法的存在使得Android Os可以设法同时触发所有警报以节省电池寿命。
看一下this问题,它可能对您有帮助。
引用接受的答案:
您应该使用AlarmManager.setExact()安排闹钟,然后在下周警告触发器再次执行警报,依此类推。
答案 1 :(得分:0)
这可能是因为您使用的是setInexactRepeating
。
来自谷歌的documentation setInexactRepeating
:
尝试:
alarmMgr.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime()+2*1000,
4*60*60*1000, alarmIntent);
并检查它是否至少在2秒后发射.. 不确定它是否能解决您的问题,但可能会引导您解决问题。