当app未运行时,didEnterRegion

时间:2013-01-18 17:30:07

标签: iphone ios location region

iOS5的。我已经正确设置了CLLocationManager,并且它监听区域进入/退出。 一切正常。但是当我杀死我的应用程序并进入某个区域时,我收到了一个本地通知(在didEnterRegion方法中定义)并且它再次启动了我的应用程序。这是标准行为还是还有其他事情发生?我以为它会在后台启动应用程序,执行didEnterRegion:并在一段时间后再次自杀。我需要做的就是在didEnterRegion中进行HTTP调用:

任何处理类似事情的人?

1 个答案:

答案 0 :(得分:2)

这是预期的行为。 当您的应用程序未运行但为您的应用程序注册了地理围栏边界时,它将启动并触发回调。 在此之后它不会被杀死,除非系统决定,它需要记忆。

不要担心,即使它已经启动,你的应用程序也将处于休眠状态,因此没有速度/电池/等惩罚。

参见文档:

  

处理区域的边界交叉事件

     

每次用户的当前位置越过边界区域时,   系统为您的应用生成适当的区域事件。如果你的应用程序   已经运行,这些事件直接发送给任何代表   当前位置管理器对象。如果你的应用没有运行,那么   系统在后台启动它以便它可以响应。应用可以   实现以下方法来处理边界交叉: