位置更新背景

时间:2011-10-05 05:56:05

标签: background cllocationmanager

目前,在我的应用中,这就是我目前所做的事情:

  • 当用户触发时,ViewController-A(VC-A)使用startUpdatingLocation或startMonitoringForRegion启动监听用户的GPS位置,具体取决于手机型号
  • VC-A也是CLLocationManager的委托
  • 目前,监控发生在前台 - 即应用程序必须正在运行。

为了在后台获取位置更新,这是我到目前为止所阅读和理解的内容......

  • 将CLLocationManager委托方法info与newClass分开,并在newClass中实现委托方法
  • VC-A然后应该使用newClass的实例来启动监控
  • 当newClass收到更新,当条件是我通知用户时,       - 如果应用程序处于后台,则发送localNotification;如果应用程序位于前台,则发送alertSound       - 停止监控

我是否需要在AppDelegate.m文件中执行任何特殊操作?

问候。

1 个答案:

答案 0 :(得分:0)

当您的应用进入后台时,您需要处理回调。我假设您正在针对当前设备进行区域监控,并且只计算旧设备的位置详细信息?

如果是这种情况,您需要在AppDel中实现locationManager,并处理-didEnterRegion和-didExitRegion的回调以及-significantLocationChange回调的回调。

我刚刚实现了一个非常相似的设置(但是我在旧设备上保留了它)。关键是在AppDel中创建一个locationManager来处理回调。

如果您的应用位于前台,则用于创建区域或监控位置的locationManager工作正常。但是一旦你遇到后台,你需要触发-monitorForSignificantLocationChange来保存击球并处理它的任何回调。