我有一个使用的组合应用程序startMonitoringForRegion:
和startMonitoringSignificantLocationChanges
保持知道用户在哪里时,应用程序是在后台。 这是否意味着我需要包括location
的值UIBackgroundModes
在关键Info.plist
?
这是从文档报价:
该显著变化位置服务,强烈建议那些不需要高精度的位置数据的应用程序。 有了这项服务,当用户的位置显著的变化只产生位置更新; 因此,它是理想的提供与非关键,位置相关的信息的用户社交应用程序或应用程序。 如果当发生更新该应用被暂停时,系统唤醒它在后台处理更新。 如果应用程序启动该服务,然后结束后,系统将重新启动应用程序会自动在新的位置变得可用。 这项服务是iOS中4及更高版本,它仅适用于包含蜂窝无线设备。
...
提供连续的位置更新给用户(甚至在后台运行)的应用程序可以通过在其Info.plist文件中UIBackgroundModes键(与位置值)启用后台位置服务。 在UIBackgroundModes键此值的引入不会从暂停应用程序排除系统,但它告诉它应该醒了,每当有新的位置数据,提供应用系统。 因此,此键可以有效地在后台运行,无论什么时候出现,以处理位置更新的应用程序。
我对此的解释是,该location
的值UIBackgroundModes
如果应用程序需要不断位置更新,就像卫星导航应用关键时,才需要。
我也曾尝试在设备上运行应用程序没有location
的值UIBackgroundModes
密钥并继续报告显著位置改变,当输入的是退出的区域。
同样,唯一的地方UIBackgroundModes
在提到CLLocationManager类参考是在startUpdatingLocation
讨论,这我不使用。