2013-05-02 51 views
0

我构建的这个应用程序即使在后台运行时也能跟踪用户的位置。我用的是CLLocationManagers方法ios后台位置服务箭头在不移动时消失

startUpdatingLocation 

我设置CLLocationManager到

desiredAccuracy=kCLLocationAccuracyNearestTenMeters 
distanceFilter=250 

一切工作的前景和背景的罚款。但是,当我长时间(小时)不移动设备时,我可以看到位置箭头消失。当我切换回我的应用程序时,我可以看到箭头立即回来并且该应用程序没有崩溃。这是我不知道的LocationManager的“特征”吗? LocationManager是否进入了某种“待机”状态?这不应该是一个问题,应用程序不在前台运行,因为我可以与它旅行一个小时,它给了我一个完美的轨道。

回答

0

是的,这是一项功能。如documentation中给出的,位置管理器对象通过在不需要硬件时关闭硬件来主动管理功率。关闭GPS硬件可以显着节省电力。

+0

如果位置仅由wifi/cell确定,我不希望位置箭头消失。根据我的理解,箭头不代表gps,而是位置服务(不管这是通过gps,cell还是wifi或任何组合)。除此之外,我希望一旦我移出distanceFilter半径,箭头就会再次出现。 – 2013-05-02 10:22:14

+0

我发现“CLLocationManager”类的属性“pausesLocationUpdatesAutomatically”,它似乎解决了我设置为NO时出现的问题。 – 2013-05-03 08:12:12

+0

是的。如果您的应用程序适用于iOS 6.0或更高版本,则可以使用该属性。但该属性的默认值设置为YES以延长电池寿命。 U可以使用**'activityType'**属性来确定何时暂停位置更新。 – 2013-05-03 09:12:46