プログラムがiPadのバックグラウンドで実行されているときにGPS情報を送信したい.助けてくれてありがとう.
1 に答える
「バックグラウンド」とは、バックグラウンドスレッドを意味していると思いますか? もしそうなら、読んでください... そうでなければ、私に知らせてください、そして私はより良い対処を試みます...
これが私がこれに取り組んだ方法です:
CLLocationManagerDelegate
1) プロパティを実装して持つシングルトン「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/
グランド セントラル ディスパッチ: https://developer.apple.com/library/mac/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html
CLLocationManager:
幸運を!