1

アプリがバックグラウンドにあるときに非同期接続を送信できるかどうかを知りたいです。この理由は、アプリがフォアグラウンドにない場合でも、場所が変更されるたびにリモート サーバーのデータベースを更新するために、ユーザーの場所 (Core Location から取得) を送信する必要があるためです。

これには許可を設定する必要がありますか? アプリがバックグラウンドにある場合、Apple は接続を処理するアプリを拒否しますか?

前もって感謝します!!

4

2 に答える 2

4

iOS はマルチタスク API を提供します。つまり、アプリがバックグラウンドにある場合でも、その API の一部にアクセスできます。これらのサービスは -

  1. ローカル通知
  2. バックグラウンド オーディオ
  3. バックグラウンド タスク
  4. 背景の場所

CoreLocationそのため、アプリがフォアグラウンドにないときに使用して、位置情報の更新を確実に送信できます。

このリンク - iOS マルチタスキングには、アプリがバックグラウンドのときにサービスを開始するコードがあります。ステップバイステップの説明

  • ロケーションのバックグラウンド モードを指定する
  • を使用NSTimerしてバックグラウンドでUIApplication:beginBackgroundTaskWithExpirationHandler:
  • x時間が短い場合はUIApplication:backgroundTimeRemaining問題なく動作し、時間が長い場合xは、バックグラウンド タスクが強制終了されるのを避けるために、時間がなくなる前にロケーション マネージャーを再度有効 (および無効) にする必要があります。location は許可されている 3 つのタイプのバックグラウンド実行の 1 つであるため、これは機能します。

ソース - iOS アプリケーションで n 分ごとにバックグラウンドで位置情報を更新するにはどうすればよいですか?

于 2012-12-06T16:18:09.170 に答える
0

ここでは、アップルのドキュメントから ( http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW47 )

バックグラウンドでユーザーの位置を追跡する方法はいくつかありますが、ほとんどの場合、アプリをバックグラウンドで継続的に実行する必要はありません。

- 大幅な変更位置情報サービス (推奨)

-フォアグラウンドのみの位置情報サービス

-バックグラウンド位置情報サービス

ただし、可能なことは次のとおりであるため、リクエストを送信することはできません。 -audio -location -voip -newsstand -Accessories & blutooth connection

したがって、すべての場所を保存し、アプリが再びフォアグラウンドになったら NSURLConnection で送信できると思います

于 2012-12-06T16:26:05.207 に答える