ios – 核心位置距离过滤电池寿命

更改distanceFilter值是否会影响电池寿命?如果是这样,这是什么影响,为什么它会产生任何影响?

解决方法

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来间歇性地检查位置

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...