2017-02-22 59 views
0

我一直試圖在應用程序完全關閉時使用重大位置更改,但未提供期望的結果。iOS關閉應用程序時發生重大位置更改檢測

我的應用程序應該檢測何時開車旅行。爲此,我註冊了重要的位置更改跟蹤,所以應用程序應該在iOS發生重大變化時啓動。

在模擬器上,我模擬了一個高速公路驅動器,它工作得很好。然而,在真實設備上,應用程序在以極高速度移動5到10公里後才能啓動。

我發現存儲其他成功執行該應用程序的應用程序,所以我想知道我的實現的哪個部分是不正確的。

我已經在info plist啓用位置背景模式。這是我使用啓動顯著位置更新代碼:

self.significantLocationManager = [[CLLocationManager alloc] init]; 
self.significantLocationManager.delegate = self; 
if ([self.significantLocationManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) { 
    self.significantLocationManager.allowsBackgroundLocationUpdates = YES; 
} 
[self.significantLocationManager startMonitoringSignificantLocationChanges]; 

編輯:我已經申請並給予我的應用程序的權限爲「總是」使用定位服務。應用程序已經在前景,背景中使用了位置,並且終止了它(但從終止狀態啓動需要很長時間)。

回答

1

你必須問總是有權在後臺運行你的應用程序。即使你的應用程序被殺死,如果重要的位置被改變,該應用程序也會醒來。到那時你不能更改任何UI組件(即更改標籤文本等)除了你的代碼是正確的。

+0

事實已經如此。我更新了問題。謝謝。 –

相關問題