gpt4 book ai didi

ios - 在 iOS 上触发的旧本地通知

转载 作者:行者123 更新时间:2023-11-29 13:08:38 25 4
gpt4 key购买 nike

我有一组我正在安排的 UILocalNotifications。他们按时开火,似乎工作正常。然而,有时,当触发一个NEW 通知时,会同时触发多个(有时只有一个)OLD 通知。

例如,我安排一个 UILocalNotification 在星期一下午 5 点倒垃圾,没有重复间隔。它没有问题而且准时发射。星期二,我有一个 UILocalNotification,要在星期二下午 5 点将垃圾桶送入垃圾桶,同样没有重复间隔。当那个触发时,我会看到 现在 的正确通知,但在当前通知下方还会有另一个通知 1 天前 将垃圾倒掉。我没有重新安排此通知。好像是昨天的通知。

这非常奇怪,我无法在任何一致的基础上重现它。我认为可能以某种方式添加了一些旧通知,所以我添加了一些逻辑来运行所有计划的通知并删除任何具有过去的触发日期但无济于事的通知。还有其他人见过这个问题吗?触发时是否需要手动清除通知?

编辑:添加了一些调度代码

//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];
}

最佳答案

我们遇到了同样的问题,但通过批量调用 API 设法解决了这个问题。不是每次都调用 scheduleLocalNotification,而是构建一个包含您要安排的所有通知的数组。像这样:

NSMutableArray *notifications = [[[UIApplication sharedApplication] scheduledLocalNotifications] mutableCopy];

// add notifications to the mutable array
// same goes for removing notifications

[[[UIApplication sharedApplication] setScheduledLocalNotifications:notifications];

还要确保您是从主线程调用它。

这样做之后,我们的问题似乎就消失了。

关于ios - 在 iOS 上触发的旧本地通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17931000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com