我有一个应用程序在后台和前台 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 和越狱,但这不应该影响它!?
谢谢你的帮助 :)