2011-05-23 34 views
2

這是場景。我需要有一個應用程序,無論在後臺/前臺,每15分鐘輪詢一次Web服務的用戶位置。iPhone頭腦風暴 - 背景中的CLLocation - 每15分鐘輪詢一次

目前我:

  1. 啓動/重新啓動與精度最高,距離過濾器沒有位置管理。
  2. 等待達到理想的精度。
  3. 存儲器讀取
  4. setDesiredAccuracy是: 「kCLLocationAccuracyThreeKilometers」
  5. setDistanceFilter爲:從第1步900
  6. 再次啓動:1000
  7. 設置一個performSelector:@選擇(的getLocation)withObject:無afterDelay。

我想使這個節省電量的方法成爲可能,並希望看到'堆棧的人'會想到上面的選項,如果你們有任何其他的建議。

感謝 詹姆斯。

回答

0

最終我得到了啓動/停止外景經理在performSelector每15分鐘應用:WithDelay。

基本上當CLLocationManager得到所需精度之內的讀出予降低CLLocation到significate變化然後將應用設置爲採取另一種讀取,15分鐘後,改變了精度的最高設置之一,並重復。

希望這有助於在未來的人。 感謝 詹姆斯

1

爲什麼不註冊顯著位置變化的應用程序,只需使用的?大量的應用程序(包括我的一些應用程序),它非常適合電池使用。事實上,除非手機做了手機信號塔交接,否則沒有任何事情發生。如果手機在某個地方呆了幾個小時,那麼幾乎沒有電池的影響。在你的方法中,整個CL框架和GPS硬件必須每15分鐘啓動一次。

+0

但我需要一個閱讀每15分鐘顯著變化不會允許我這樣做,會嗎?基本上我需要檢查一個用戶每隔15分鐘還是在一個會議中進行會議,並檢查他們是否進入會議室。 – jodm 2011-05-23 18:26:57

+0

你真的需要每15分鐘閱讀一次嗎?你真正想知道的是用戶是否離開,對吧?如果你瞬間知道這一點,而不知道他們還剩15分鐘?此外,您可以使用CLLocation設置地理區域,並在用戶打破該位置的邊界時觸發。這可能是您的特定用例更好的解決方案。 – 2011-05-23 18:48:06

2

如果你不靶向IOS3,可以考慮使用「顯著變化」的API,它應該是最有效的爲這種情況的。