我有一组正在安排的 UILocalNotifications。他们准时开火,似乎工作正常。但是,有时,当新通知触发时,会同时触发多个(有时只有一个)旧通知。
例如,我安排 UILocalNotification 在星期一下午 5 点取出垃圾,没有重复间隔。它开火没有问题,而且准时。周二,我有一个 UILocalNotification 可以在周二下午 5 点将垃圾箱带入,同样没有重复间隔。当那个触发时,我会看到NOW的正确通知,但在当前通知下方将是另一个通知,用于在1 Day Ago 前取出垃圾。我没有重新安排此通知。好像是昨天的通知。
这是非常奇怪的,我无法在任何一致的基础上复制它。我认为可能以某种方式添加了一些旧通知,所以我添加了一些逻辑来运行所有计划的通知并删除任何具有过去的触发日期但没有帮助的通知。其他人见过这个问题吗?是否有一些手动清除通知时我需要做的事情?
编辑:添加了一些调度代码
//only schedule if the alert date is later than now
if ([AMDateUtil isNowEarlierThanDate:alertDate]) {
//create the notification and setup some properties
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = alertDate;
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.alertAction = nil;
localNotification.soundName = UILocalNotificationDefaultSoundName;
//add the local notification
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}