簡體   English   中英

應用程序進入后台或手機鎖定時如何獲取位置?

[英]How to get location when app goes to background or phone is locked?

我正在嘗試使用locationManager獲取我的位置並將其更新到我的Web服務。

- (void)locationManager:(CLLocationManager *)manager 
didUpdateToLocation:(CLLocation *)newLocation 
fromLocation:(CLLocation *)oldLocation {
    //some code here
}

這是正常現象,但是如果我的應用進入后台或手機屏幕被鎖定,則更新位置可能會暫停。 我如何獲得位置?

我建議您設置一個處理程序,例如以下示例:

TTLocationHandler

針對所需的新近度和准確性配置處理程序。 為通知“ LocationHandlerDidUpdateLocation”設置一個偵聽器。 將您的代碼放在一種在收到通知后稱為的方法中上傳數據。

如果您不需要細粒度的細節,我建議您在后台使用有意義的LocationChange監視的省電選項。 在這種情況下,您無需在info.plist中添加后台模式,也不會不必要地浪費資源。 該應用程序將被喚醒,並且僅在用戶大量移動時才調用您的方法。 處理程序中有可配置的選項,要求對背景和/或前景進行持續監視,並設置新近度和准確性閾值。

有關如何響應並將數據保存到Web或本地的示例,請參見LMPinTracker類。 有關使用的討論,請參見線程調用每隔幾秒鍾即可獲取當前坐標而無需使用NSTimer的情況。

將此密鑰添加到您的應用程序列表

Required background modes

將其標記為數組,並在其item0添加此值

App registers for location updates

該應用程序現在還將在后台獲取位置數據。

暫無
暫無

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

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