我根据Single View模板编写了一个准系统应用程序,该模板只在应用程序变为活动状态时进行调用。我发现当我执行openURL拨打电话时会有一致的10秒延迟。
-(void) dial {
NSLog(@"LOADED");
NSString *number = @"1NNNNNNNNNN"; // Actual number here - hardcoded for testing
NSURL *phoneUrl = [NSURL URLWithString:[NSString stringWithFormat:@"tel:%@", number]];
if ([[UIApplication sharedApplication] canOpenURL:phoneUrl]) {
NSLog(@"Calling");
[[UIApplication sharedApplication] openURL:phoneUrl];
NSLog(@"Exiting");
} else {
NSLog(@"Not calling");
}
}
这里叫它:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"AppName: applicationDidBecomeActive");
ViewController *vc = (ViewController *) self.window.rootViewController;
[vc dial];
}
以下是我对日志的了解:
2014-08-24 15:55:00.954 AppName[899:60b] applicationDidBecomeActive
2014-08-24 15:55:00.956 AppName[899:60b] LOADED
2014-08-24 15:55:00.979 AppName[899:60b] Calling
2014-08-24 15:55:10.988 AppName[899:60b] Exiting
2014-08-24 15:55:12.193 AppName[899:60b] applicationDidEnterBackground
2014-08-24 15:55:12.196 AppName[899:60b] applicationWillTerminate
我已经尝试构建Release,启用所有优化以及其他一些优化,但它们似乎都没有帮助。
我已经看到第三方应用程序触发了电话,并且没有这10秒的延迟(我见过其他人也有这种情况)。有谁可以避免这种延迟?
答案 0 :(得分:0)
问题似乎是iOS7特有的。 iOS 6应用程序没有这个问题,iOS 8不再有这个问题。