繁体   English   中英

当用户选择位置按钮时,CLLocationManager更新位置

[英]CLLocationManager updates location when user select location button

在我的应用程序中,在开始吃午饭时,我必须使用cllocationmanager类使用此方法来查找当前位置([locationManager startUpdatingLocation];)。找到位置后,我会触发此方法([locationManager stopUpdatingLocation];)。

现在,用户将从一个位置移动到另一个位置。它将自动检测到新位置,或者我们需要再次触发([locationManager startUpdatingLocation];)。

帮我?

注意:

如果我再次调用([locationManager startUpdatingLocation];)方法,它将给出一个新位置或旧位置。如何区分它?

每当您调用[locationManager startUpdatingLocation];时,都会为您提供当前位置。 因此,当您再次调用此函数时,它将为您提供新的位置。

在这种情况下,或者您必须持续监视更新的位置,如果要自动更新,或者在一定时间后必须再次检查更新的位置,并将其与上一个位置进行比较。 这样,您将知道天气是新位置还是旧位置。

简短的答案:是的,您需要调用[locationManager startUpdatingLocation]; 获取新位置。 您可以先停止然后再启动,然后再停止然后再启动,并且每次启动时,您都将获得设备的当前(新)位置。

长答案:您还可以选择保持locationManager处于打开状态(永远不要调用stopUpdatingLocation)并始终获取更新。 通过为位置管理器设置distanceFilter属性,您可以选择将新位置更新发送到您的应用的时间(或更确切地说,与上一次更新之间的距离变化量为多少)。 这似乎是大多数采用不止一个位置样本或需要不断跟踪用户位置的实现方式。

还要注意,有一个新的startMonitoringSignificantLocationChanges,它提供了不同的获取更新的方式:如果您想使用此功能,请仔细阅读文档,但它并不总是可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM