应用程序发送到后台后位置停止更新

时间:2013-07-30 07:31:40

标签: ios objective-c cllocationmanager

好的,这是一个艰难的(对我来说无论如何)......我的应用程序有一个按钮,用于检查用户是否与公司非常接近。按下按钮时按钮的工作方式几乎完美:

  • 获取用户的纬度和经度坐标
  • 将用户的纬度和经度坐标传递给PHP脚本
  • PHP脚本会比较用户与业务之间的距离。如果用户在100英尺范围内,则脚本返回1,如果用户不在100英尺范围内,则脚本返回0.
  • 最后,该应用程序会显示一条警告,提示用户距离不到100英尺或超过100英尺

就像我提到的,这几乎完美无缺。当我接近建筑物时,我可以走向一个不断点击按钮的商家,当我足够接近时,警报会告诉我距离我不到100英尺。

我的问题是,如果我在行走时将应用程序发送到后台,警报会显示错误信息。例如,我从很远的地方打开应用程序,然后我将应用程序发送到后台并接近业务,然后当我就在业务旁边时,我将应用程序带到前台并单击按钮,它说我我超过100英尺。任何人对于为什么会发生这种情况有任何想法?

在我的viewDidLoad方法中:

[[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(appReturnsActive) name:UIApplicationDidBecomeActiveNotification 
object:nil];

在appReturnsActive方法中:

- (void)appReturnsActive{

    locationManagerProfile.delegate = self;
    locationManagerProfile.desiredAccuracy = kCLLocationAccuracyBest;
    [locationManagerProfile startUpdatingLocation];
    [locationManager startUpdatingLocation];
}

1 个答案:

答案 0 :(得分:1)

为节省电量,当您的应用转到后台时,会停止位置更新。您可以向info.plist添加值以更新您的应用。但是你应该仔细考虑电池的使用情况。