簡體   English   中英

當用戶選擇位置按鈕時,CLLocationManager更新位置

[英]CLLocationManager updates location when user select location button

在我的應用程序中,在開始吃午飯時,我必須使用cllocationmanager類使用此方法來查找當前位置([locationManager startUpdatingLocation];)。找到位置后,我會觸發此方法([locationManager stopUpdatingLocation];)。

現在,用戶將從一個位置移動到另一個位置。它將自動檢測到新位置,或者我們需要再次觸發([locationManager startUpdatingLocation];)。

幫我?

注意:

如果我再次調用([locationManager startUpdatingLocation];)方法,它將給出一個新位置或舊位置。如何區分它?

每當您調用[locationManager startUpdatingLocation];時,都會為您提供當前位置。 因此,當您再次調用此函數時,它將為您提供新的位置。

在這種情況下,或者您必須持續監視更新的位置,如果要自動更新,或者在一定時間后必須再次檢查更新的位置,並將其與上一個位置進行比較。 這樣,您將知道天氣是新位置還是舊位置。

簡短的答案:是的,您需要調用[locationManager startUpdatingLocation]; 獲取新位置。 您可以先停止然后再啟動,然后再停止然后再啟動,並且每次啟動時,您都將獲得設備的當前(新)位置。

長答案:您還可以選擇保持locationManager處於打開狀態(永遠不要調用stopUpdatingLocation)並始終獲取更新。 通過為位置管理器設置distanceFilter屬性,您可以選擇將新位置更新發送到您的應用的時間(或更確切地說,與上一次更新之間的距離變化量為多少)。 這似乎是大多數采用不止一個位置樣本或需要不斷跟蹤用戶位置的實現方式。

還要注意,有一個新的startMonitoringSignificantLocationChanges,它提供了不同的獲取更新的方式:如果您想使用此功能,請仔細閱讀文檔,但它並不總是可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM