2017-07-07 52 views
0

我正在开发类似于应用程序的导航。对于位置管理器来说,它可以很好地在前景和背景中获取设备的当前位置。iOS应用程序在后台运行2分钟后死于“来自调试器的消息:由于信号9而终止”

在前景中,它可以很好地工作。但是,当应用程序进入后台模式时,最初位置管理器运行良好。但大约2分钟后,应用程序退出,控制台显示错误消息:“来自调试器的消息:由于信号9而终止。”

我搜索了错误信息,但仍找不到解决方案。 Quitting app causes error "Message from debugger: Terminated due to signal 9"

我注意到CPU使用率非常高,在背景模式下约为105%。这可能是操作系统发送KILL信号的原因。但即使我降低了位置管理者的准确性(但为了导航的目的,我仍然需要最高的准确度),问题仍然存在。

所以我真的好奇那些健身应用如何设法在后台追踪用户的位置不久被操作系统杀死。

+0

对于有类似问题的人。我通过使用这些工具解决了这个问题,并且我在导航堆栈中发现了一个viewController的简单动画,该导航堆栈尚未终止。在后台VC堆栈中的一个简单的动画,以某种方式导致CPU使用率达到100%。 –

+0

你有没有得到任何解决方案?我在iOS 11.2.6版本中遇到同样的问题。 –

回答

0

我觉得你的问题是,由于这是每秒钟刷新一次,即使应用程序在后台

为了防止应用程序被杀死,而在后台,停止做用的东西高CPU复杂的图形用户界面,就像渲染图像一样,当应用程序处于后台模式时。

+0

谢谢!是的,我发现除了获得新的位置之外,该应用还做了很多其他的事情。 –

相关问题