2017-04-11 25 views
0

在我的應用程序中,我有要求每隔2分鐘將我的位置詳細信息發送到公開的Web服務。我怎麼能這樣做?當我使用NSTimer實現上述操作時,每當應用程序處於後臺時,計時器將在3分鐘內暫停。我曾嘗試使用backgroundExpirationHandler,但該操作在一組時間間隔後未執行。有什麼建議麼 ?在我的應用程序處於後臺時向我的服務器發送位置信息的iOS 10中的問題

注 - 我在info.plist中添加了「位置更新的應用程序註冊」。

+0

你不能每兩分鐘做一次。您可以在「每次獲取位置更新」時執行此操作,並且可以跟蹤上次更新服務器的時間,並且只有在自上次更新後超過兩分鐘時才發送更新。如果設備沒有移動或位置覆蓋不良,那麼您在一段時間內可能無法獲得更新。 – Paulw11

+0

是否有可能使用定時器或執行選擇器每2分鐘執行一次該操作? –

+0

不,定時器在您的應用程序暫停時不運行 – Paulw11

回答

0

所有你需要添加權限在功能後臺位置更新的第一,那麼你應該調整下你的位置管理器的屬性:

self.locationManager.pausesLocationUpdatesAutomatically = NO; 
locationManager.distanceFilter // get location callback after device moves to this defined distance 
locationManager.desiredAccuracy //according to your requirement 

所以每當任何上述所說的調整發生,你會得到回調在你的委託方法中。收到後,您可以更新您的位置的應用程序服務器。

+0

CoreLocation代表將在此時觸發。但是當應用程序處於暫停狀態時,是否可以執行像調用服務一樣的操作來讓服務器知道代理中的更新位置? –

+0

實際上,即使您的應用程序被終止,您也可以將應用程序設置爲通過位置回調啓動。但在這種情況下,2規則將不適用。當一個指示位置移動500米時,你會得到一個回調。 – ankit

相關問題