2012-12-11 42 views

回答

0

由「背景」,我假設你的意思是在後臺線程?如果是這樣,請繼續閱讀......否則,讓我知道,我會盡力解決好...

以下是我解決了這個:

1)創建一個單身「CoreLocationManager」類,它實現CLLocationManagerDelegate並具有CLLocationManager屬性。告訴你的LocationManager開始通過調用類似

[self.locationManager startUpdatingLocation]; 

注意更新:你可能不希望有這樣的LocationManager不斷更新其GPS位置(因爲這將快速耗盡電池)。在我有了一個好的位置並在需要時才更新我會關閉我的。

2)創建一個NSTimer設置爲每當你想更新GPS位置時觸發。這也是將所需信息發送到服務器的好地方。

3)使用的庫,例如AFNetworking(見https://github.com/AFNetworking/AFNetworking)在後臺(更容易,在我看來)創建異步HTTP請求,或者在後臺推出自己的異步調度隊列(困難,但也許更強大,取決於具體情況)

如果您不確定singletonNSTimer,大中央調度(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

祝你好運!

+0

非常感謝。可能我的問題不清楚。我只是想實現當我按下「Home」並且軟件在後臺運行(applicationDidEnterBackground),程序也可以通過socket發送消息(I使用asyncsocket)。 –