Iphone 为什么即使我在后台请求位置更新,我的iOS应用程序也会被杀死?

Iphone 为什么即使我在后台请求位置更新,我的iOS应用程序也会被杀死?,iphone,ios,gps,core-location,Iphone,Ios,Gps,Core Location,我的iOS应用程序有时会被杀死,即使我在plist中的“所需后台模式”下添加了“位置更新的应用程序注册” - (void)applicationDidEnterBackground:(UIApplication *)application { NSDate *dateEnteredIntoBackground = [NSDate date]; FSLog(@"*** ENTERING BACKGROUND ***"); [application beginBackgroundTaskW

我的iOS应用程序有时会被杀死,即使我在plist中的“所需后台模式”下添加了“位置更新的应用程序注册”

- (void)applicationDidEnterBackground:(UIApplication *)application
{
 NSDate *dateEnteredIntoBackground = [NSDate date];

 FSLog(@"*** ENTERING BACKGROUND ***");

 [application beginBackgroundTaskWithExpirationHandler:^{ 

    NSDate *dateOfTermination = [NSDate date];              

}];
}
在监视上述代码的同时,当它被踢出时,NSDate对象总是相隔10分钟

然而,让事情变得更加混乱的是,我经常看到应用程序可以在后台运行30分钟而不终止。作为一项附加测试,我将iPhone放在法拉第笼中,以确保不会调用位置代理更新(这通过读回一个书面日志文件得到确认);因此,似乎可以排除这种可能性

有什么线索/建议吗

谢谢


卡尔。

实际上,你必须申请新的位置,以防止你的应用程序被暂停。如果您在一段时间内未请求新位置,iOS将暂停您的应用程序

作为解决方法,您可以执行以下操作:

  • 持续请求新位置(最迟在到期日内) 经办人)
  • 使用“重大改变位置服务”,它会唤醒你 每当位置改变时

更多详细信息可以在和中找到,这两部分都是苹果官方文档。

你实际上必须申请新的位置,以防止你的应用程序被暂停。如果您在一段时间内未请求新位置,iOS将暂停您的应用程序

作为解决方法,您可以执行以下操作:

  • 持续请求新位置(最迟在到期日内) 经办人)
  • 使用“重大改变位置服务”,它会唤醒你 每当位置改变时
更多细节可以在和中找到,这两部分都是苹果官方文档