定期唤醒iOS应用以检查位置

时间:2014-09-24 18:02:13

标签: ios gps ibeacon location-services

我正在开发一款iOS应用程序,该应用程序在后台永久使用位置服务来监控信标和GPS区域。如果设备不在我的iBeacons附近,这会导致我的应用无用地消耗电池。它还始终在状态栏中显示位置服务蓝色箭头,这使我的用户对我的应用程序感觉不好。

我希望能够避免永久使用位置服务,但仍然能够检测到iBeacons。我认为定期唤醒我的应用以检查位置以查看设备是否靠近我的iBeacons位置会节省电池并允许我找到设备而不会在状态栏中显示位置服务蓝色箭头。

这个解决方案可行吗?或者您认为有更好的解决方案吗?

2 个答案:

答案 0 :(得分:1)

iOS在您的应用处于后台时查找信标时已经优化了电池使用情况。我的测试表明额外的电池使用量是最小的,并且当你的应用程序在后台时蓝色箭头位置图标会出现,摘录很短暂的时间段(大约10秒),信标暂时被唤醒信标检测后你的应用程序进入后台。

你确定你的应用程序正在显示蓝色箭头吗?这是否真的在后台发生了很长一段时间?你的plist中是否有不必要的位置背景模式?

答案 1 :(得分:0)

在iOS 7.1苹果之后优化了信标服务。现在你会得到你附近的地区。虽然应用程序很难关闭,但您会收到本地通知。您可以将这些方法用于额外的代码: -

-(void)locationManager:(CLLocationManager *)manager
        didEnterRegion:(CLRegion *)region {
}
-(void)locationManager:(CLLocationManager *)manager
         didExitRegion:(CLRegion *)region {
}

正如@davidgyoung所说,iOS已经优化了电池使用,所以不要担心。 :)