首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StartUpdatingLocation与重大-更改位置服务

StartUpdatingLocation与重大-更改位置服务
EN

Stack Overflow用户
提问于 2013-02-05 13:50:33
回答 1查看 10.9K关注 0票数 4

我有重大变化的位置服务的问题。

苹果文档说:“无论是使用标准的位置服务还是使用重大更改的位置服务来获取位置事件,接收这些事件的方式都是一样的。”

但是,如果是“重大变化的位置服务”,我无法得到任何回调,如果是“标准位置服务”,请告诉我,如果有人有任何输入?

EN

回答 1

Stack Overflow用户

发布于 2013-02-05 13:58:44

当第一次调用位置时,然后当距离筛选值超过时,startUpdatingLocation将更新该位置。

但当startMonitoringSignificantLocationChanges的位置发生重大变化时。

请查看CLLocationManager的详细信息。

startUpdatingLocation 开始生成报告用户当前位置的更新。 - (void)startUpdatingLocation Discussion 此方法立即返回。调用此方法将使位置管理器获得初始位置修复(这可能需要几秒钟时间),并通过调用其locationManager:didUpdateLocations: method通知您的委托。(在locationManager:didUpdateToLocation:fromLocation: 5和更早版本中,位置管理器将调用iOS方法。)之后,接收方主要在超过distanceFilter属性中的值时生成更新事件。不过,在其他情况下也可以提供更新。例如,如果硬件收集到更准确的位置读取,则接收器可以发送另一通知。 连续多次调用此方法不会自动生成新事件。但是,在中间调用stopUpdatingLocation确实会在下次调用此方法时发送一个新的初始事件。 如果启动此服务并暂停应用程序,系统将停止传递事件,直到应用程序再次开始运行(无论是在前台还是后台)。如果您的应用程序被终止,新位置事件的传递将完全停止。因此,如果应用程序需要在后台接收位置事件,则必须在其UIBackgroundModes文件中包含Info.plist键(带有位置值)。 除了实现locationManager:didUpdateLocations: method的委托对象之外,它还应该实现locationManager:didFailWithError: method来响应潜在的错误。

startMonitoringSignificantLocationChanges 根据重大位置更改启动更新生成。 - (void)startMonitoringSignificantLocationChanges Discussion 此方法异步启动位置事件的传递,并在调用它后不久返回。位置事件被传递到委托的locationManager:didUpdateLocations: method。要传递的第一个事件通常是最近缓存的位置事件(如果有的话),但在某些情况下可能是较新的事件。获取当前位置修复可能需要几秒钟时间,因此请确保检查委托方法中的位置事件的时间戳。 返回当前位置修复后,接收方只在检测到用户位置的重大更改时才生成更新事件。例如,当设备与不同的蜂窝塔相关联时,它可能会生成一个新事件。它不依赖于distanceFilter属性中的值来生成事件。连续多次调用此方法不会自动生成新事件。但是,在中间调用stopMonitoringSignificantLocationChanges确实会在下次调用此方法时发送一个新的初始事件。 如果启动此服务并随后终止应用程序,则如果出现新事件,系统将自动将应用程序重新启动到后台。在这种情况下,传递给locationManager:didUpdateLocations: method的options字典包含键UIApplicationLaunchOptionsLocationKey,指示您的应用程序是因为位置事件而启动的。重新启动时,仍然必须配置位置管理器对象,并调用此方法继续接收位置事件。重新启动位置服务时,将立即将当前事件传递给您的委托。此外,即使在启动位置服务之前,位置管理器对象的位置属性也会被最近的location对象填充。 除了实现locationManager:didUpdateLocations: method的委托对象之外,它还应该实现locationManager:didFailWithError: method来响应潜在的错误。 Note:当设备比以前的通知移动500米或更多时,应用程序就会收到通知。它不应期望通知频率超过每五分钟一次。如果设备能够从网络中检索数据,则位置管理器更有可能及时传递通知。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14709082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档