应用程序关闭时iOS重要的位置更改检测

时间:2017-02-22 10:41:48

标签: ios iphone location device

我一直在尝试使用重要的位置更改,而应用程序完全关闭,但它没有给出理想的结果。

我的应用程序应该检测何时开车旅行。为此,我注册了重要的位置更改跟踪,因此应用程序应在iOS发生重大更改后启动。

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

我在商店的其他应用程序中找到了成功执行该操作的应用程序,所以我想知道我的实现的哪一部分是不正确的。

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

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

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

1 个答案:

答案 0 :(得分:1)

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