更改distanceFilter
值是否会对电池寿命产生影响?如果是这样,这是什么影响,为什么会产生任何影响呢?
答案 0 :(得分:6)
distanceFilter属性对电池寿命没有影响或影响极小。所有它确实限制了代表对其移动的每n米的调用。如果你想用gps来节省电池寿命,那么我建议你只打开gps并每隔n秒读取一次读数,然后再将其关闭直到下一次读数。我会用一个计时器。如果您希望此功能在后台运行,请执行以下步骤:
在您的应用程序plist文件中,将“app registers for location updates”添加到Required background modes键。
在您的applicationDidEnterBackground方法中执行类似这样的操作
UIBackgroundTaskIdentifier __block bgTask;
UIApplication *application = [ UIApplication sharedApplication];
bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
//Prevent from going inactive by starting location update
[[ ApplicationContext sharedInstance].coreLocationController startUpdatingLocation ];
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
while (YES) {
if ( [[UIApplication sharedApplication] applicationState] == UIApplicationStateActive ) {
break;
} else {
//DO something in the background
}
}
});
在应用程序到期之前启动位置管理器的位置,以确保它在后台继续处于活动状态。这将允许应用程序始终在后台运行,以便您可以通过打开/关闭gps间歇性地检查位置