4

更改distanceFilter值对电池寿命有影响吗?如果是这样,这种效果是什么?为什么它会有任何效果?

4

1 回答 1

6

distanceFilter 属性对电池寿命没有影响或影响极小。它所做的只是将对代表的调用限制为它移动的每 n 米。如果您希望使用 gps 来节省电池寿命,那么我建议您只打开 gps 并每隔 n 秒读取一次读数,然后再次将其关闭,直到下一次读数。我会使用计时器。如果您希望它也可以在后台运行,请执行以下步骤:

  1. 在您的应用程序 plist 文件中,将“应用程序注册位置更新”添加到所需的后台模式键。

  2. 在你的 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 来间歇性地检查位置

于 2012-10-10T19:11:56.233 回答