0

我想在 iPad 后台运行程序时发送 GPS 信息。感谢您的帮助。

4

1 回答 1

0

通过“背景”,我假设您的意思是在后台线程上?如果是这样,请继续阅读...否则,请告诉我,我会尝试更好地解决...

这是我解决这个问题的方法:

1)创建一个实现CLLocationManagerDelegate并具有CLLocationManager属性的单例“CoreLocationManager”类。告诉你的locationManager通过调用类似的东西开始更新

[self.locationManager startUpdatingLocation];

注意:您可能不希望这个 locationManager 不断更新其 GPS 位置(因为这会很快耗尽电池电量)。在我找到一个好的位置后我关闭了它,只在需要时更新。

2)创建一个 NSTimer 设置为在您想要更新 GPS 位置时触发。这也是向服务器发送所需信息的好地方。

3)使用诸如AFNetworking之类的库(参见https://github.com/AFNetworking/AFNetworking)在后台创建异步HTTP请求(在我看来更容易),或者在后台推出自己的异步调度队列(更难,但可能更健壮,视情况而定)

如果您不确定singleton, NSTimer, 大中央调度 (GCD) 或者CLLocationManager是什么,那么您需要学习一些东西。这里有一些关于这些的资源:

单身人士:

http://en.wikipedia.org/wiki/Singleton_pattern

http://www.galloway.me.uk/tutorials/singleton-classes/

NSTimer:http: //developer.apple.com/library/ios/#documentation/cocoa/reference/Foundation/Classes/NSTimer_Class/Reference/NSTimer.html

大中央调度: https ://developer.apple.com/library/mac/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html

http://www.raywenderlich.com/4295/multithreading-and-grand-central-dispatch-on-ios-for-beginners-tutorial

CLLocationManager:

https://developer.apple.com/library/mac/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html

https://developer.apple.com/library/mac/#documentation/CoreLocation/Reference/CLLocationManagerDelegate_Protocol/CLLocationManagerDelegate/CLLocationManagerDelegate.html

祝你好运!

于 2012-12-11T04:01:06.020 回答