【发布时间】:2017-07-07 17:05:12
【问题描述】:
我正在开发类似导航的应用程序。位置管理器可以很好地在前台和后台获取设备的当前位置。
无论多长时间,它在前台都能正常工作。但是,当应用程序进入后台模式时,位置管理器最初运行良好。但大约 2 分钟后,应用退出,控制台显示错误消息:“来自调试器的消息:由于信号 9 而终止。”
我搜索了错误消息,但仍然找不到解决方法。 Quitting app causes error "Message from debugger: Terminated due to signal 9"
我注意到 CPU 使用率非常高,在后台模式下约为 105%。这可能是操作系统发送 KILL 信号的原因。但即使我降低了位置管理器的准确度(但出于导航目的,我最终仍需要最高准确度),问题仍然存在。
所以我真的很想知道这些健身应用是如何设法在后台跟踪用户的位置而不会被操作系统杀死的。
【问题讨论】:
-
针对有类似问题的人。我通过使用仪器解决了这个问题,我在导航堆栈中找到了一个未终止的 viewController 的简单动画。在后台 VC 堆栈中的一个简单动画不知何故导致 CPU 使用率达到 100%。
-
你有什么解决办法吗?我在 iOS 11.2.6 版本中遇到了同样的问题。
标签: ios swift background locationmanager