CLLocationManager不会停止

亲爱的开发者,

我正在努力寻找一个解决我的问题的方法来重新定位CLLocationManager。

我在我的应用程序中使用CLLocationManager实例。 如果用户选择设备上的主页按钮或终止应用程序,我希望停止位置服务。

因此我调用[self.locationManager stopUpdatingLocation]; – 但这种方式不起作用。 应用程序进入后台,状态栏右上角的小位置箭头不会消失。 即使我添加[self.locationManager release]self.locationManager.delegate = nil; – 位置跟踪不会停止: – /

如果我转到我的设备设置并关闭应用程序的位置服务,它只会消失。 每当我切换回启用位置服务时,我立即在交换机切换旁边看到一个紫色箭头,图标会重新出现在状态栏中。

我的问题是,当应用程序进入后台或终止时,如何关闭位置服务?

非常感谢提前和美好的一天:-)

你这样做是正确的。 输入背景时,如果调用某些委托方法几秒钟就可以了。 这应该停止。

你在哪里停止位置更新? 你确定它被触发了吗? 如果是,即使视觉指示器告诉别的东西,您的委托方法是否被调用?

您确定在停止之后不会触发重新激活位置更新的方法(因为例如,即使停止后您也可以收到一些更新)。

您的位置已停用。 在iOS 5上,位置服务图标“含义”已更改。请查看以下问题: https : //apple.stackexchange.com/questions/27463/why-is-the-location-services-icon-always-present

我引用答案:

这是ios 5中的一项新function,称为“区域监控”

即使应用程序已关闭,它仍处于活动状态的原因是此function在iOS 5核心中运行,并通知在进入或离开特定地理围栏时注册的所有应用程序。

当您使用基于位置的提醒时,提醒会执行此操作。

虽然位置图标始终显示。 这实际上对电池的影响非常小,因为苹果通过大多数使用单元和wifi来真正优化这一function。

你的应用程序运行正常。 系统行为是改变者。

例如,如果您开始监控重要的位置更改,那么您应该使用相应的对方法取消订阅。 如果您使用区域输入,那么在您取消订阅之前,系统将通知您的代表。