我在很多地方都读过,如果用户刷了一个应用程序,该应用程序将无法接收位置更新。当我的应用程序没有被杀死并且处于后台时,我收到了didEnterRegion和didExitRegion回调。但是,如果我刷杀死应用程序,应用程序不会得到那些回调。我的问题是,
答案 0 :(得分:0)
这不是预期的行为。即使在任务切换器中杀死了某个应用,您也应该获得didEnterRegion
和didExitRegion
个回调。如果您没有看到这个,那么您的应用或测试方法可能会出现问题。发布代码可能会有所帮助。
一些警告和提示:
确保您的应用已获得locationManager.requestAlwaysAuthorization()
的后台权限。没有它,它根本无法在后台检测到。
处于被杀死状态的检测在iOS 7.0.x上无效。从7.1 +开始工作。
确保等待足够长时间以获取检测结果。在某些应用状态中,最多可能需要15分钟。
在测试中终止您的应用之前,请检查日志确保您知道CoreLocation认为您当前的区域状态。如果您关闭灯塔然后杀死您的应用程序,CoreLocation可能没有时间意识到灯塔消失,认为它仍然在该区域内。如果你打开灯塔,就不会有新的入场事件,因为它认为你已经在里面了。