【发布时间】:2012-08-08 05:24:06
【问题描述】:
我有一个应用程序在后台和前台 Mapkit 中使用 CLLocationManager 来显示用户位置。我没有激活 BackgroundModes。因此,如果我的应用程序进入后台,我将停止使用 [mapview setShowsUserLocation:NO] 显示用户位置。在 appDelegate 中,我启动 LocationManager 并每隔 30 秒使用 [locationManager startUpdatingLocation] 和 [locationManager stopUpdatingLocation] 停止它(此时无需担心电池耗尽)以在后台获取用户位置。因此,可以说 locationManager 开启 5 秒,关闭 25 秒。这 25 秒位置服务指示灯应该会消失,对吧?但事实并非如此。即使我没有告诉 LocationManager 启动,指示器也一直存在。杀死该应用程序无济于事,只会在设置中关闭位置服务。但是如果我重新打开它,那么指示器将一直在那里。
我在不同的帖子中尝试了所有内容,即使是在这些帖子中: Locationservice Indicator stays "on" Location services don't stop when application is terminated
而且我永远不会调用 locationManager=nil 或释放它。 太疯狂了..大家可以帮帮我吗?
更新:所以这让我非常抓狂。几天以来一直坚持这一点。并且只在我真正的 iPhone 上测试过。现在我在 iPad 和 iPhone 模拟器上进行了尝试,在这两种设备上都符合我的预期:当应用程序处于后台时,指示灯亮起 5 秒,指示灯熄灭 25 秒。那么这是我真实手机上的错误还是有人有一些建议?我有 5.1.1 和越狱,但这不应该影响它!?
感谢您的帮助:)
【问题讨论】:
-
当应用程序在后台时,是否还有其他可能导致此位置指示器的原因?因为我在整个项目中搜索了其他 LocationManager,但我只在 AppDelegate 中使用它。没有更多的想法是哪里出了问题:-(
-
没人?问题依然存在!目前没有其他设备可以测试它,只有我的 iPhone...
标签: xcode service location mapkit