[英]Repeating Alarm Notification (Android)
这样行吗?
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);
}
}
我有一个未定的ID用于endingIntent,并且警报中唯一不同的是“ i”变量,该变量根据数据库行为它赋予新的秒数(最终,这将是每日通知,而“ i”代表一天) ,而不是一秒钟。但这只是出于测试目的,我已经确认在“ i”中传递了正确的数据。我不确定这是否会产生三个不同的警报?
那我要在这里创建多个警报吗? 还是每个循环都有效地替代了刚刚创建的循环?
仅根据文档的内容,我可以想象您只有一个AlarmManager:
“如果已为此计划调度了一个警报(两个意图的相等性由filterEquals(Intent)定义),则将其删除并替换为该警报。” http://developer.android.com/reference/android/app/AlarmManager.html
这是确定Intent相等性的方法: http : //developer.android.com/reference/android/content/Intent.html#filterEquals(android.content.Intent )
基于此,即使您有PendingIntent的唯一ID,我也不会说。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.