gpt4 book ai didi

iphone - 如何在不卡住 UI 的情况下安排多个本地通知?

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

在我的 PhoneGap 1.3 离线应用程序中,我使用的是在官方插件 GitHub 页面中找到的经过修改的 iOS 本地通知插件。

我需要根据用户定义的设置安排重复通知(每周/每月),或每 2 周触发多个单一通知。

当我尝试安排每 2 周触发这 26 个通知时出现问题。

目前我正在使用它来实现:

for (int i = 1; i < 26; i++)
{
UILocalNotification *localNotif = [[UILocalNotification alloc] init];

if (localNotif == nil) {
return;
}

NSDate *date = [[NSDate date] dateByAddingTimeInterval: i * 60 * 60 * 24 * 7 * 2];

localNotif.fireDate = date;
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertBody = [NSString stringWithFormat:@"%i: %@", i, msg];

localNotif.hasAction = NO;
localNotif.soundName = UILocalNotificationDefaultSoundName;
localNotif.applicationIconBadgeNumber = 0;

[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

[localNotif release];

}

在 iPhone 3G 或 iPod Touch 2 上运行此程序时,用户界面会卡住大约 3 - 5 秒,这是一个很大的问题。有没有办法优化调度通知?

我知道仅使用每周和每月重复通知可以解决问题,但客户希望每 2 周每 2 个月每 3 个月 通知,所以我需要安排多个通知。

我尝试使用 [NSThread detachNewThreadSelector:...] 在新线程中运行循环,这会引发新问题(时不时崩溃)。

iPhone 是否在 3G 之后发布的速度快得多以至于不存在延迟/卡住?我只有那 2 台古老的设备可以用来测试。

最佳答案

我建议使用以下方法在后台线程中执行创建:(void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg

或者我会尝试重新考虑这个过程。也许与其立即创建值(value) 2 周的提醒,不如创建一对,然后设置其他东西来创建其余的提醒。或者甚至可能只是创建一个并用它存储一个重复的 bool 值,这样当它触发时它也会创建下一个。

关于iphone - 如何在不卡住 UI 的情况下安排多个本地通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10719335/

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