【问题标题】:didEnterRegion when app is not running应用程序未运行时的 didEnterRegion
【发布时间】:2013-01-18 17:30:06
【问题描述】:
iOS5。我已经正确设置了 CLLocationManager,它会监听区域的进入/退出。
一切正常。但是当我杀死我的应用程序并进入一个区域时,我收到了一个本地通知(在 didEnterRegion 方法中定义)并且它再次启动了我的应用程序。这是标准行为还是发生了其他事情?我认为它会在后台启动应用程序,执行 didEnterRegion: 并在一段时间后再次杀死自己。我需要做的就是在 didEnterRegion 中进行 HTTP 调用:
任何人都处理过类似的事情?
【问题讨论】:
标签:
iphone
ios
location
region
【解决方案1】:
这是预期的行为。
当您的应用程序未运行但已为您的应用程序注册地理围栏边界时,它将启动并触发回调。
之后它不会被杀死,除非系统决定,它需要内存。
不用担心,您的应用程序即使已启动也会处于休眠状态,因此没有速度/电池/等方面的损失。
查看文档:
处理区域的跨界事件
每当用户的当前位置越过边界区域时,
系统会为您的应用程序生成适当的区域事件。如果你的应用
已经在运行,这些事件直接发送给任何
当前位置管理器对象。如果您的应用程序未运行,则
系统在后台启动它,以便它可以响应。应用程序可以
实现以下方法来处理越界: