我创建了一个小应用程序,该应用程序在iPhone上使用了定位服务。一切正常,但事实是,即使我明确杀死了该应用程序,有时信息栏中的小箭头仍保持事件状态。
我将后台模式用于定位服务,因此已实现了appDelegate方法applicationWillResignActiveapplicationDidEnterBackgroundapplicationWillEnterForegroundapplicationDidBecomeActive,但未涉及定位服务(嗯-我需要在后台模式下使用它们)。

在这种配置中,永远不会调用applicationWillTerminate;我在stopUpdatingLocation中将所有清理工作实现为dealloc,因为我没有找到其他适合的清理方式。但仍然-指示灯一直亮着。

有任何想法吗?

最佳答案

我遇到了同样的问题-应用程序在状态栏中保留了位置指示器。

原来,我的问题是我最初调用CCLocationManager的“startMonitoringSignificantLocationChanges”方法,以为可以提供粗略的位置信息,以便在真正需要时可以提高分辨率。

不幸的是,一旦应用程序调用了该方法一次,即使您随后删除该应用程序并重新安装它,它也将始终在状态栏中重新显示该图标,直到该应用程序在CCLocationManager上调用“stopMonitoringSignificantLocationChanges”以从系统中注销自身为止-完全痛苦,因为我不得不保留该代码,直到它已经为正在为我测试我的应用程序的几个人整理出来。

因此,如果您在应用程序上遇到该图标,请确保您已将对“startMonitoringSignificantLocationChanges”的所有调用与停止调用进行了匹配。

10-08 05:30