AlarmManager - 重复模式

时间:2014-10-08 11:01:29

标签: android android-alarms

我想设置一个以不同方式重复的警报,例如,每天,每周,每隔一周,工作日,周末等。 问题是工作日和周末。我知道例如Vibrator有一个设置重复模式的选项,所以我想知道AlarmManager是否也有它?我在这上面找不到任何东西。显然,我可以自己计算时间,并设置每天平日重复闹钟5次,周末2次,但我想知道是否有更好的方法我找不到? 谢谢:))

1 个答案:

答案 0 :(得分:0)

所以,这就是我最终解决它的方式。 time12是用户设置的时间,并且警报在工作日或用户设置时的周末弹出。

//6-Weekdays
case 6:
 Calendar cal = Calendar.getInstance();
 cal.setTimeInMillis(time12);
 for (int i = 0; i < 7; i++) {
    if (cal.get(Calendar.DAY_OF_WEEK) != 6 && cal.get(Calendar.DAY_OF_WEEK) != 7)
         alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time12,1000 * 60 * 60 * 24 * 7,        operationBroadcast);
    cal.add(Calendar.DAY_OF_WEEK,1);
    }
 break;

//7-Weekends
case 7:
 Calendar cal2 = Calendar.getInstance();
 cal2.setTimeInMillis(time12);
 for (int i = 0; i < 7; i++) {
    if (cal2.get(Calendar.DAY_OF_WEEK) == 6 ||cal2.get(Calendar.DAY_OF_WEEK) == 7)
         alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time12, 1000 * 60 * 60 * 24 * 7, operationBroadcast);
    cal2.add(Calendar.DAY_OF_WEEK,1);
    }
 break;