Я получаю список дат из HTML.

Список становится списком при получении.

Я хочу использовать SimpleDate Parser (который я знаю, как это сделать) для анализа и установки даты для AlarmManager.

Так как Date. Как я могу создать для этого метод? Чтобы создать будильник для каждой даты.

При первой загрузке списка дат я хотел бы, чтобы он проанализировал даты и установил будильник для каждой.

И если в один день используется несколько будильников, как я могу объединить их в один?

1
yoshi24 25 Авг 2011 в 16:11

2 ответа

Лучший ответ

Вы можете установить будильник, поскольку вы указываете размер объекта List, который содержит дату.

Теперь проанализируйте его и установите сигнал тревоги с ожидающим объектом в любом цикле, например в цикле for.

Просто используйте тот же объект для Intent, PendingIntent 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);
}
1
Pratik 25 Авг 2011 в 12:22

Установите будильник для каждого, это возможно и поддерживается. Однако учтите, что вы должны различать сигналы тревоги таким образом, чтобы Android не «перезаписывал» старые. Дело в том, что если 2 аларма используют одинаковые параметры намерения и дополнительные параметры, новый будет перезаписывать старый.

Например, вы должны изменить параметр 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);
1
IncrediApp 25 Авг 2011 в 12:24