作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试在应用程序完全关闭时使用重大位置更改,但它没有给出预期的结果。
我的应用程序应该检测汽车旅行何时开始。为此,我注册了重大位置变化跟踪,因此一旦发生重大变化,应用程序应由 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];
编辑:我已经请求并授予我的应用“始终”使用位置服务的权限。该应用程序已经在前台、后台和终止时使用位置(但从终止状态启动需要很多时间)。
最佳答案
您必须请求 Always 许可才能在后台运行您的应用程序。即使您的应用程序被终止,如果重要位置发生更改,该应用程序也会唤醒。到那时你不能更改任何 UI 组件(即更改标签文本等),除此之外你的代码是正确的。
关于应用程序关闭时 iOS 显着位置变化检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42388904/
我是一名优秀的程序员,十分优秀!