需要延迟等待 GPS
使用 iPhone 和 Objective C,有没有办法停止或执行定时循环,以允许 GPS 赶上并返回一组有效的坐标?
目前,应用程序运行速度太快,GPS 无法足够快地提供坐标......
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
使用 iPhone 和 Objective C,有没有办法停止或执行定时循环,以允许 GPS 赶上并返回一组有效的坐标?
目前,应用程序运行速度太快,GPS 无法足够快地提供坐标......
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
既然你说你在 iPhone 上,那么你正在使用 CLLocationManager。只需在管理器上设置委托并等待
locationManager:didUpdateToLocation:fromLocation:
消息即可知道 GPS 数据何时准备就绪。Since you said you're on iPhone, you're using CLLocationManager. Just set a delegate on the manager and wait for the
locationManager:didUpdateToLocation:fromLocation:
message to know when the GPS data is ready.假设您的 GPS 轮询在与用户界面不同的线程中运行,您可以调用静态 NSThread 函数 sleepForTimeInterval 或 sleepUntilDate 来自线程正在等待 GPS 数据。
Assuming your GPS polling is running in a different thread to the User Interface, you can call the static NSThread functions sleepForTimeInterval or sleepUntilDate from the thread that is waiting for the GPS data.
如果您的移动应用程序使用 GPS,则即使您的应用程序不跟踪移动,您的应用程序也应该为位置更新做好准备。
常见的情况是用户将您的应用程序置于后台,然后在完全不同的位置激活它。
在 iOS 上,创建 CLLocationManagerDelegate 就像 Anomie 写的那样。并使用更新的时间戳来评估该位置的新鲜度。
不要睡觉&像其他人建议的那样进行民意调查。
If your mobile application is using GPS, your application should be prepared for location updates, even if your application doesn't track movements..
A common case would be where the user put your application in background and activate it later on a completely different location.
On iOS, create an implementation of CLLocationManagerDelegate like Anomie wrote. And use the timestamp of the update to evaluate the freshness of the location.
Don't sleep & poll like other people suggested.
要么阻止等待数据,要么如果没有收到数据则不更新任何内容。当然有
usleep()
,但没有显示代码以及具体如何执行循环以及通过什么机制(线程或非线程)我们只能笼统地回答。Either block to wait for data or don't update anything if no data received. There is of course
usleep()
, but without showing code and specifically how your loop is executed and by what mechanism (threaded or not) we can only answer in general terms.