应用程序关闭时检测到iOS重大位置更改

应用程序关闭时检测到iOS重大位置更改,ios,iphone,location,device,Ios,Iphone,Location,Device,我一直在尝试在应用程序完全关闭时使用显著的位置更改,但并没有给出预期的结果 我的应用程序应该能够检测汽车何时启动行程。为此,我注册了重要的位置更改跟踪,因此一旦发生重大更改,应用程序应该由iOS启动 在模拟器上,我模拟了一个公路驾驶,它工作得非常好。然而,在实际设备上,应用程序在以非常高的速度移动5到10公里后启动 我在store上发现其他应用程序成功地实现了这一点,所以我想知道我的实现的哪一部分是不正确的 我已经在info plist启用了位置背景模式。这是我用来启动重要位置更新的代码: se

我一直在尝试在应用程序完全关闭时使用显著的位置更改,但并没有给出预期的结果

我的应用程序应该能够检测汽车何时启动行程。为此,我注册了重要的位置更改跟踪,因此一旦发生重大更改,应用程序应该由iOS启动

在模拟器上,我模拟了一个公路驾驶,它工作得非常好。然而,在实际设备上,应用程序在以非常高的速度移动5到10公里后启动

我在store上发现其他应用程序成功地实现了这一点,所以我想知道我的实现的哪一部分是不正确的

我已经在info plist启用了位置背景模式。这是我用来启动重要位置更新的代码:

self.significantLocationManager = [[CLLocationManager alloc] init];
self.significantLocationManager.delegate = self;
if ([self.significantLocationManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) {
    self.significantLocationManager.allowsBackgroundLocationUpdates = YES;
}
[self.significantLocationManager startMonitoringSignificantLocationChanges];

编辑:我已经请求并授予我的应用“始终”使用位置服务的权限。应用程序已在前台、后台和终止时使用位置(但从终止状态启动需要花费大量时间)。

您必须始终请求在后台运行应用程序的权限。如果重要位置发生更改,即使您的应用程序被终止,应用程序也会唤醒。到那时,您不能更改任何UI组件(即更改标签文本等),除非您的代码是正确的