2013-10-24 91 views
2

即使我的應用程序在後臺註冊位置更新。定位服務在iPhone 5中處於「未激活」狀態

在我的代碼:

self.locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers; 
self.locationManager.distanceFilter = 2500; 

而且我沒有在任何地方移動。因此,在控制檯日誌中正好15分鐘後,我收到了此消息「位置圖標現在應該處於」未激活「狀態」「。從這一刻起,我的應用程序不在後臺運行。

這隻發生在iPhone 5中。

@updated

這裏是我的代碼

self.locationManager = [[CLLocationManager alloc] init]; 
self.locationManager.delegate = self; 
[self.locationManager setPurpose:@"Enable Location service for \"My App\" to track your"]; 
self.locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers; 

/* Notify changes when device has moved x meters. 
* Default value is kCLDistanceFilterNone: all movements are reported. 
*/ 
self.locationManager.distanceFilter = 2500; 
[self.locationManager startUpdatingLocation]; 

回答

5

當位置服務變爲不活動狀態時,您的應用程序在後臺運行嗎?

如果你不想暫停位置更新在後臺比你需要設置pausesLocationUpdatesAutomatically標誌,

if ([self.locationManager respondsToSelector:@selector(pausesLocationUpdatesAutomatically)]) { 
    self.locationManager.pausesLocationUpdatesAutomatically = NO; 
} 
+0

@Bhumeshwerkatre好了,這裏我用self.locationManager,您需要使用您的CLLocationManager對象。 –

+0

是的,我接受「當應用程序在後臺時,位置圖標現在應該處於'非活動狀態'狀態。我會嘗試這個代碼。 –

+0

但有一點,相同的代碼適用於iOS 4以上的iPhone 4。在iPhone 4中,它不會停止接收位置更新。 –

2

由於iOS 6中蘋果公司已經加入到@property(assign, nonatomic) BOOL pausesLocationUpdatesAutomaticallyCLLocationManager。默認值是YES。將此屬性的值更改爲NO,並且位置跟蹤不會在後臺停止。

相關問題