这行得通吗?
public void setRepeatingAlarm() {
ArrayList<Integer> AlarmDays = datasource.getDays();
final int _id = (int) System.currentTimeMillis();
Log.d("AlarmManageDebt", String.valueOf(AlarmDays));
for (int i : AlarmDays) {
Calendar cal = Calendar.getInstance();
if (cal.get(Calendar.SECOND) >= 30)
cal.add(Calendar.MINUTE, 1);
cal.set(Calendar.SECOND, Integer.valueOf(i));
Intent intent = new Intent(this, TimeAlarm.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, _id,
intent, PendingIntent.FLAG_CANCEL_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
60 * 1000, pendingIntent);
}
}
我有一个用于pendingIntent的唯一ID,警报中唯一不同的是“i”变量,它根据数据库行给它新的秒数(最终,这将是一个每日通知,“i”将代表一天,而不是一秒钟。但这是出于测试目的。我已经确认在“i”中传递了正确的数据。我只是不确定这是否会产生三个不同的警报?
那么我在这里创建多个警报吗?还是每个循环都有效地替换了刚刚创建的循环?