2011-09-13 98 views
6

我正在研究一個Web應用程序,使用戶能夠登錄到應用程序,只有當它們位於某些特定區域時才能登錄。我在我的應用程序的開始叫locationManager startUpdatingLocation來獲取用戶的位置並啓用/禁用日誌記錄。CLLocationManager startUpdatingLocation vs startMonitoringSignificantLocationChanges

一旦用戶登錄,我叫

[locationManager stopUpdatingLocation]; 
[locationManager startMonitoringSignificantLocationChanges]; 

和註銷用戶時更新的位置在該地區之外。以任何方式使用這兩種方法會發生衝突嗎? (我在模擬器上測試代碼,因此位置總是相同的)。

注意:我沒有使用didEnterRegiondidExitRegion,因爲所有內容都由現有的Javascript代碼處理。我只在用戶的當前位置發送。

+0

他們不衝突。我測試了它。你可以安全地運行。 –

回答

2

這真的取決於用戶登錄後您所需的位置。當您監視重大更改時,您的locationManager只會在發生重大更改時收到通知。 (例如,新的蜂窩塔,wifi的變化,其他應用呼叫位置等)。它不會一致。如果你關心的是用戶登錄,我可能會一起取消重要的監控。如果您仍然需要位置,請準備好僅在該位置獲得零星更新。

+0

我以'startUpdatingLocation'開始,因爲當我在應用程序的開始嘗試使用'startMonitoringSignificantLocationChanges'時,它並沒有將當前位置發送給我的應用程序。在用戶登錄後,除非用戶退出允許他登錄的區域,否則我不會真正使用該位置,因此我認爲監視重要會有效。我還沒有在實際的設備上進行過測試(因此我仍然在等待蘋果公司批准我爲付費iOS開發人員。 – dee

+0

通常,如果您在您的應用中處於活動狀態,您將主動監控位置。監視重要位置是當不需要位置更新時。就像在後臺。這有助於延長電池壽命。 –

+0

如果您只需要監測特定區域,我會建議區域監測方法。我目前正在使用它們,它們工作得非常好。看看-startMonitoringForRegion,你應該找到你需要的東西。 –

相關問題