gpt4 book ai didi

iphone - UIApplication-scheduleLocalNotification : very slow when called by UIApplication -appWillTerminate:

转载 作者:行者123 更新时间:2023-11-28 18:38:46 27 4
gpt4 key购买 nike

time profiler of my app when i press home button

我在我的 info.plist 中设置了“应用程序不在后台运行”,所以当用户点击主页按钮时,应用程序退出。

当我的 [UIApplication -appWillTerminate:] 被调用时,我将向系统安排 64 个本地通知,所有通知都是不重复的。

但这在 iOS6.0.1 的 iPhone4 上花费了看似很长的时间(6.17 秒)。当我查看 time profiler 时,我发现曲线很奇怪,它占用的 CPU 时间不多,但确实占用了很多时间。

此外,当我查看调用树时,在图像中显示的时间范围内,93% 的时间花在 [UIApplication -scheduleLocalNotification:] 上。为什么?

这就是我生成通知的方式:

UILocalNotification *n = [[[UILocalNotification] alloc] init] autorelease];
n.alertBody = @"some body";
n.hasAction = YES;
n.alertAction = @"some action";
n.fireDate = @"some date";
n.repeatInterval = 0;
n.soundName = @"my sound"
n.userInfo = aDictionaryWithAStringAbount10CharacterLongAnd2NSNumber.
[self.notifications addObject:n];

这是我安排通知的方式:

-(void)endProxyAndWriteToSystemLocalNotification
{
_proxying = NO;
NSDate *dateAnchor = [NSDate date];

NSEnumerator *enumerator = [self.notifications objectEnumerator];
NSInteger i = 0;
while (i < maxLocalNotifCount) {
UILocalNotification *n = [enumerator nextObject];
if (!d) {
break;
}

if ([n.fireDate timeIntervalSinceDate:dateAnchor] >= 0) {
[[UIApplication sharedApplication] scheduleLocalNotification:n];
i++;
}
}

[self.notificationDatas removeAllObjects];

}

最佳答案

这会有所帮助:

-(void)endProxyAndWriteToSystemLocalNotification {

[[UIApplication sharedApplication] setScheduledLocalNotifications:self.notifications];
}

iOS 4.2 及更高版本

阅读 UIApplication 类引用以获得详细描述

关于iphone - UIApplication-scheduleLocalNotification : very slow when called by UIApplication -appWillTerminate:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14250031/

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