你可以这样尝试:
ArrayList<Calendar> alarmTimes = getAlarmTimes(); //Make your own function which returns alarm times as an array of Calendar type
for(int i=0; i<alarmTimes.size(); i++)
{
Intent intent = new Intent(this, YourClass.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT | Intent.FILL_IN_DATA);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, alarmTimes[i].getTimeInMillis(), pendingIntent);
}
如果您想独立处理每个警报,请为每个警报使用不同的requestCode。此外,您可能想查看在alarmManager.set()函数中使用的不同标志。根据您的应用程序需要修改它们。
http://developer.android.com/reference/android/app/PendingIntent.html
您将必须创建一个 AlarmReceiver 类,该类将在警报响起时处理您想做的任何事情(确保在 AndroidManifest 中添加此类作为接收器)。如果您想发送额外的信息和警报,那么您可以使用这样的意图附加功能:
intent.putExtra("info1", value1);
intent.putExtra("info2", value2);
其中info1是额外数据的名称,而 value1 是您发送的值。
希望这可以帮助!
编辑:
ArrayList<Calendar> alarmTimes = new ArrayList<Calendar>();
Calendar calendar = Calendar.getInstance();
calendar.set(CALENDAR.MONTH, 7);
calendar.set(CALENDAR.DAY_OF_MONTH, 17);
calendar.set(CALENDAR.HOUR_OF_DAY, 13);
calendar.set(CALENDAR.MINUTE, 0);
alarmTimes.add(calendar);
//Repeat the above code for all alarm times and then return array object
return alarmTimes;