Android 如何解析日期列表并将其设置为AlarmManager?

Android 如何解析日期列表并将其设置为AlarmManager?,android,alarmmanager,Android,Alarmmanager,我正在从HTML中检索日期列表 该列表在检索时设置为列表 我想使用SimpleDate解析器(我知道怎么做)来解析和设置AlarmManager的日期 因为它不止一个日期。我如何才能为此创建一个方法?为每个日期创建警报 第一次加载日期列表时,我希望它解析日期并为每个日期设置警报 如果一天有多个报警,我如何将它们合并为一个报警?您可以设置报警,因为您包含包含日期的列表对象的大小 现在解析它,并在任何循环(如for循环)中使用挂起对象设置报警 只需将同一对象用于Intent PendingEvent

我正在从HTML中检索日期列表

该列表在检索时设置为列表

我想使用SimpleDate解析器(我知道怎么做)来解析和设置AlarmManager的日期

因为它不止一个日期。我如何才能为此创建一个方法?为每个日期创建警报

第一次加载日期列表时,我希望它解析日期并为每个日期设置警报


如果一天有多个报警,我如何将它们合并为一个报警?

您可以设置报警,因为您包含包含日期的列表对象的大小

现在解析它,并在任何循环(如for循环)中使用挂起对象设置报警

只需将同一对象用于Intent PendingEvent AlarmManager

在for循环中,您喜欢这样做吗

Calendar setAlarm=Calendar.getInstance();
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);

for(int i=0;i<listDate.size();i++){
    Intent intent=new Intent(getApplicationContext(),"YOUR BROADCAST CLASS");
    PendingIntent sender = PendingIntent.getBroadcast(this,i, intent, PendingIntent.FLAG_ONE_SHOT);

   /// if you parse date direct then here pass
   setAlarm.setTime(sdf.parse(listDate.get(0));
   am.set(AlarmManager.RTC_WAKEUP, setAlarm.getTimeInMillis(), sender);
}
Calendar setAlarm=Calendar.getInstance();
AlarmManager am=(AlarmManager)getSystemService(报警服务);

对于(int i=0;i为每个设置一个警报,这是可能的,并且是受支持的。 但是,请注意,您必须以这样的方式区分警报,以便Android不会“覆盖”旧警报。 问题是,如果两个警报使用相同的意图参数和附加值,新警报将覆盖旧警报

例如,您应该如下更改requestId参数:

        Intent intent = new Intent(context, Alarm.class);
        intent.putExtra("id", String.valueOf(**uniqueRequestId**));
        sender = PendingIntent.getBroadcast(context, **uniqueRequestId**, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP, time, sender);

这会覆盖报警吗?顺便说一句,我使用的是ArrayList。如果它们能让你更好地了解我在做什么。不会,因为在getBroadcast中,第二个参数是请求代码,所以如果你用不同的请求代码传递相同的意图,那么你可以用相同的实例设置不同的报警。我通过了“i”所以“i”每次都将增加,请求代码将更改