0

プログラムがiPadのバックグラウンドで実行されているときにGPS情報を送信したい.助けてくれてありがとう.

4

1 に答える 1

0

「バックグラウンド」とは、バックグラウンドスレッドを意味していると思いますか? もしそうなら、読んでください... そうでなければ、私に知らせてください、そして私はより良い対処を試みます...

これが私がこれに取り組んだ方法です:

CLLocationManagerDelegate1) プロパティを実装して持つシングルトン「CoreLocationManager」クラスを作成しCLLocationManagerます。次のような呼び出しで、locationManagerに更新を開始するように指示します。

[self.locationManager startUpdatingLocation];

注: おそらく、この locationManager で GPS 位置情報を常に更新する必要はありません (バッテリーがすぐに消耗するため)。良い場所を見つけたら電源を切り、必要なときだけ更新します。

2) GPS 位置を更新したいときに起動する NSTimer セットを作成します。これは、必要な情報をサーバーに送信するのにも最適な場所です。

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 に答える