Как установить Multiple AlarmManager для элемента списка?
У меня проблема с моим кодом. У меня есть список с датой и временем. Я получаю всю дату и время из цикла SQLite в for. Теперь, когда я запускаю программу, AlarmManager не срабатывает при каждой дате и времени. Последний добавленный сигнал тревоги только получен. Здесь у меня есть код:
private void setAlarm() {
// TODO Auto-generated method stub
DbHandler dbHandler =new DbHandler(getApplicationContext());
list_alarm = dbHandler.getDateOnly();
Log.d("00000", list_alarm.size()+"");
if(list_alarm.size() > 0){
for(int i=0;i<list_alarm.size();i++){
String dat = list_alarm.get(i).getTaskDate();
String pat = list_alarm.get(i).getTaskTime();
String strDnT = dat+" "+pat;
SimpleDateFormat format;
Date date1;
long d;
format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
try {
date1 = (Date)format.parse(strDnT);
d = date1.getTime();
Intent k = new Intent(Create_Task.this, AlarmReceiver.class);
PendingIntent intent = PendingIntent.getBroadcast(getApplicationContext(), RQS_1, k, 0);
AlarmManager managers = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
managers.set(AlarmManager.RTC_WAKEUP, d, intent);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}else{
Log.d("List : ", "Not having any list");
}
}
Заранее спасибо. Я надеюсь, что вы понимаете мой вопрос.
1 ответ
Решение
Как заявлено в андроид док.
Если для того же IntentSender уже запланирован сигнал тревоги, он сначала будет отменен.
Я считаю, что вам нужно установить время один за другим: я имею в виду, когда сигнал тревоги вызывается с T1, а затем устанавливается на T2. когда T2 закончится, тогда установите T3...