据称,在 iOS 中,即使应用程序未启动,也可以使用CLLocationManager
'方法注册代表以响应设备移动到特定地理区域的情况。startMonitoringForRegion:
从CLLocationManager 类参考:
在 iOS 中,您向位置管理器注册的区域在应用程序启动之间保持不变。如果在您的 iOS 应用程序未运行时发生区域交叉,系统会在后台自动将其唤醒(或重新启动),以便处理该事件。重新启动时,您之前配置的所有区域都可以在您创建的任何位置管理器对象的受监视区域属性中使用。
我假设如果重新启动该应用程序,iOS 实际上并没有将它带到前台。我找不到任何好的示例来说明startMonitoringForRegion
适合整个应用程序的位置,所以我的问题是:
- 是否必须从特定的地方注册代表
startMonitoringForRegion
?我猜如果我们在启动应用程序时没有将它带到前台,它就不能在视图控制器中被插入。有人可以举一个例子吗? - 如果我们决定在进入该区域后确实要将应用程序置于前台,我们将如何做到这一点?
- 何时
startMonitoringForRegion
向操作系统注册,何时取消注册?用户是否必须至少启动一次应用程序(即使它已经被杀死)才能进行初始注册?如果用户关闭设备电源怎么办?我们的处理程序会在设备下次开机时注册,还是用户必须至少再次启动应用程序?