CLLocationManager不会停止

时间:2011-11-16 16:50:03

标签: ios cllocationmanager

亲爱的开发人员,

我正在努力寻找解决CLLocationManager问题的解决方案。

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

因此我打电话给[self.locationManager stopUpdatingLocation]; - 但这不知道怎么办。应用程序进入后台,状态栏右上角的小位置箭头不会消失。即使我添加[self.locationManager release]self.locationManager.delegate = nil;,位置跟踪也不会停止: - /

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

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

提前多多感谢并度过了愉快的一天: - )

3 个答案:

答案 0 :(得分:5)

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

我引用答案:

  

这是ios 5中的一项新功能,名为"区域监控"

     

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

     

当您使用基于位置的提醒时,提醒就会这样做。

     

虽然位置图标始终显示。这实际上非常   由于苹果真正优化了这一点,对电池的影响极小   通过使用单元格和wifi主要功能。

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

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