これは機能しますか?
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」は1日を表します) 、秒ではありません。ただし、これはテスト用です。「i」で正しいデータが渡されていることを確認しました。これにより3つの異なるアラームが作成されるかどうかはわかりません。
では、ここで複数のアラームを作成していますか?または、各ループは、作成したばかりのループを効果的に置き換えていますか?