2013-07-30 58 views
0

好的,这里有一个难题(对我来说)...我的应用程序有一个按钮,用于检查用户是否靠近企业。按钮的工作原理几乎完全由当按下它执行以下操作:位置在应用程序发送到后台后停止更新

  • 获取用户的纬度和经度坐标
  • 将用户的纬度和经度坐标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

为了节省电池,当你的应用程序切换到后台位置更新停止。您可以将值添加到info.plist以保持您的应用程序更新。但你应该仔细考虑电池的使用情况。

+0

谢谢,让我们说我希望它立即开始更新,当我把它带回到前台。我已更新我的问题,以显示appDidWaken可能的样子... – Brandon

+0

更新位置需要时间。如果在应用程序处于后台时没有其他应用程序或系统更新位置信息,则无法立即获取当前位置。 – cahn

相关问题