0

我有一个应用程序在后台和前台 Mapkit 中使用 CLLocationManager 来显示用户位置。我没有激活 BackgroundModes。因此,如果我的应用程序进入后台,我将停止使用 [mapview setShowsUserLocation:NO] 显示用户位置。在 appDelegate 中,我启动 LocationManager 并每隔 30 秒使用 [locationManager startUpdatingLocation] 和 [locationManager stopUpdatingLocation] 停止它(此时无需担心电池耗尽)以在后台获取用户位置。因此,可以说 locationManager 开启 5 秒,关闭 25 秒。这 25 秒位置服务指示灯应该会消失,对吧?但事实并非如此。即使我没有告诉 LocationManager 启动,指示器也一直存在。杀死该应用程序无济于事,只会在设置中关闭位置服务。

即使在这些帖子中,我也尝试了不同帖子中的所有内容: Locationservice Indicator保持“开启” 当应用程序终止时位置服务不会停止

而且我永远不会调用 locationManager=nil 或释放它。太疯狂了..每个人都可以帮助我吗?


更新:所以这让我非常抓狂。几天以来一直坚持这一点。并且只在我真正的 iPhone 上测试过。现在我在 iPad 和 iPhone 模拟器上进行了尝试,在这两种设备上都符合我的预期:当应用程序处于后台时,指示灯亮起 5 秒,指示灯熄灭 25 秒。那么这是我真实手机上的错误还是有人有一些建议?我有 5.1.1 和越狱,但这不应该影响它!?

谢谢你的帮助 :)

4

1 回答 1

0

好的,我刚刚想通了。这篇文章帮助了我。

“从您的 iOS 设置中选择常规 | 重置 | 重置位置警告。这会将警告重置到所有应用程序。这意味着下次您启动需要位置的应用程序时,iOS 将通过位置权限对话框提示您。选择操作表中的‘重置警告’。”

我打了几次电话,然后它按我的预期工作(并且一直在模拟器中工作):-)!现在我可以考虑耗尽电池等...

于 2012-08-14T04:41:46.983 回答