2012-10-10 48 views

回答

5

distanceFilter属性对电池寿命没有影响或极小影响。它确实将呼叫限制在代表移动的每个米的地方。如果想要保持电池续航时间就是您想要用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 
        } 
    
    } 
    }); 
    

    你在哪里开始外景经理之前的应用程序将终止,以确保其继续在后台激活状态。这将允许应用程序始终在后台运行,所以你可以间歇开/关

+0

+1大转弯答案检查GPS的位置!这就是我一直在寻找的!在后台更新职位!谢谢! – CainaSouza