1

アプリケーションのバックグラウンドで、ユーザーの現在の緯度/経度を (5 分間隔で) 取得し、Web サービス呼び出しを介してサーバーに報告するプロセスを実行したいと考えています。必要なバックグラウンド モードを info.plist に追加すると、次のオプションがあります。

-App plays audio

-App registers for location updates

-App provides Voice over IP services

私の場合、明らかにリストの 2 番目の選択肢が必要ですが、場所がわかったらどうすればよいでしょうか? バックグラウンドで Web サービスを呼び出すことはできますか?? 他にどのような制限がありますか??

どうもありがとう!

4

1 に答える 1

6

アプリがバックグラウンド モードの場合、通常の方法では HTTP 接続を確立できません。場所の更新をサーバーに送信するバックグラウンド タスクをセットアップする必要があります。

探しているものを正確にカバーする短いチュートリアルを見つけました (コードはテストしていません)。

アプリがバックグラウンドで実行されている
ときに場所の変更が発生すると、iOS はアプリを起動し、locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocationCLLocationManager のデリゲート メソッドを呼び出します。このような場合は、アプリがバックグラウンドで実行されているかどうかを確認し、実行されている場合はバックグラウンド タスクをセットアップします。バックグラウンド タスクは、データをサーバーに送信する必要があります。

制限事項

  • ドキュメントには、このようなバックグラウンド タスクが完了するまでにかかる時間が明確ではありませんが、最大 10 分程度だったことを少し覚えています。

  • 私の知る限り、アプリがバックグラウンドで実行されている間は UI を更新できません

于 2012-09-28T17:39:08.447 に答える