如何在每5分钟后从应用程序的后台/前台获取位置

时间:2017-04-07 08:51:20

标签: ios objective-c cllocationmanager

我怎样才能得到它?

-(void)updateLocation {

[self performSelector:@selector(updateLocation) withObject:nil afterDelay:300];

[self.locationTracker updateLocationToServer];
}

但它每次都不起作用。

3 个答案:

答案 0 :(得分:0)

尝试使用NSTimer

NSInteger minutes = 5;
[NSTimer scheduledTimerWithTimeInterval:60 * minutes
                                 target:self
                               selector:@selector(updateLocation)
                               userInfo:nil
                                repeats:YES];

答案 1 :(得分:0)

要在后台更新位置,您需要从项目功能开启后台模式。 enter image description here

答案 2 :(得分:0)

按照NA000022的建议,在功能中添加后台位置更新权限,并将其添加到您的位置管理器。

self.locationManager.pausesLocationUpdatesAutomatically = NO;

我还建议使用

locationManager.distanceFilter 
locationManager.desiredAccuracy

而不是更新它持续时间。由于位置更新比任何其他服务更快地消耗电池。