2012-10-10 25 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