我在iOS中基于区域监控的应用程序有问题;
假设我有一个半径为300米的监控区域,我的位置距离该区域的中心350米(但我正在进入一辆靠近我的区域的汽车)。
如果我在那一刻关闭我的应用程序,GPS立即关闭,方法"didEnterRegion"永远不会被调用。如果我的位置离我的监控区域较远(例如500米远),则不会发生此问题
有可能修复这个吗?我试着用"后台模式"在后台设置"所需的位置服务",但这使得使用GPS代替"区域监控",GPS永远不会停止。
区域监控的问题是,当用户已经"在该区域内"时,该功能永远不会起作用,这会导致许多及时通知的问题。
首先,区域监控工作不需要后台模式,即使您的设备休眠(按顶部按钮),区域监控也会继续工作。另外,如果你不使用BG模式,苹果可以根据他们的需要拒绝你的应用。
对于您的问题,如果您已经在内部并且由于任何原因没有获得didEnterRegion,您应该使用备份计划。在CLRegion类中,你可以调用containsCoordinate
来查看你是否在该区域内。
你没有得到一个didEnterRegion调用可能是由于某种原因你的add区域被重新初始化。例如,您已经重新添加了您的区域。