AlarmManager在特定时间重复

时间:2014-11-26 15:54:20

标签: android alarmmanager android-alarms

使用AlarmManager,您可以在特定时间设置闹钟,并在指定的时间间隔重复闹钟

alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP,  
            calendar.getTimeInMillis(), 4*60*60*1000, alarmIntent);

在示例中,警报每4小时重复一次,但是是否可以设置在特定时间触发并在特定时间重复的警报?例如:我想设置一个警报,在9:00开始服务,并在11:30,17:30和20:00重复。该服务必须在大约这几个小时开始。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

为什么不这样呢?

long now     = calendar.getTimeInMillis();
long time24h = 24*60*60*1000;
long timeAt09_00 = ...; // calculate from now...
long timeAt11_30 = ...; // calculate from now...

alarmMgr1.setInexactRepeating(AlarmManager.RTC_WAKEUP, now ,        time24h, alarmIntent);
alarmMgr2.setInexactRepeating(AlarmManager.RTC_WAKEUP, timeAt09_00, time24h, alarmIntent);
alarmMgr3.setInexactRepeating(AlarmManager.RTC_WAKEUP, timeAt11_30, time24h, alarmIntent);

答案 1 :(得分:2)

你可以创建4个警报,从{00},11:30,17:30和20:00开始AlarmManager.setRepeating(),并设置重复间隔为24小时(= 24 * 60 * 60 * 1000)

答案 2 :(得分:1)

使用AlarmManager.setRepeating()方法。

有关示例,请参阅AlarmManager Repeat

以下是有关Scheduling Repeating Alarms的Android文档,其中包含说明和示例代码。