java使用AlarmManager设置报警。已用\u实时\u唤醒
我希望警报服务每1小时广播一次意图
我使用RTC_WAKEUP进行此操作,如下所示:
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, AlarmSheduleHelper
.getImmediateNextHour().getTimeInMillis(),
AlarmManager.INTERVAL_HOUR, pendingIntent);
现在,我想使用经过的\u实时\u唤醒来完成它。我怎么做
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, ELAPSED_TIME_REAL_OF_STARTING_HR, AlarmManager.INTERVAL_HOUR, pendingIntent);
如何使ELAPSED_TIME_REAL_OF_STARTING_HR
ie elapsedRealtime与启动hr相对应
# 1 楼答案
这将在1小时内唤醒设备并触发警报,此后每1小时:
# 2 楼答案
AOSP API演示的代码片段:
您可能希望按照link查看完整的示例
如果您希望闹钟在一小时内(凌晨1点、凌晨2点,…)响起,将类型指定为RTC_唤醒
# 3 楼答案
从现在起一小时的实时时间应为:
System.currentTimeMillis() + (60 * 60 * 1000); // 60 minutes
# 4 楼答案
我认为accuya的答案应该有效,我只是改进了它,让闹钟在每小时开始时响起
首先,确定在第一次报警前应跳过的时间间隔:
因此,如果当前时间为7:35,则firstAlarmInterval将表示在8:00首次发射之前所需的25分钟
# 5 楼答案
android系统中没有已用\u时间\u实时\u开始\u HR标志,您必须在alarmManager中指定警报的开始时间来代替此标志。setRepeating()方法