アプリがバックグラウンドにあるときに非同期接続を送信できるかどうかを知りたいです。この理由は、アプリがフォアグラウンドにない場合でも、場所が変更されるたびにリモート サーバーのデータベースを更新するために、ユーザーの場所 (Core Location から取得) を送信する必要があるためです。
これには許可を設定する必要がありますか? アプリがバックグラウンドにある場合、Apple は接続を処理するアプリを拒否しますか?
前もって感謝します!!
アプリがバックグラウンドにあるときに非同期接続を送信できるかどうかを知りたいです。この理由は、アプリがフォアグラウンドにない場合でも、場所が変更されるたびにリモート サーバーのデータベースを更新するために、ユーザーの場所 (Core Location から取得) を送信する必要があるためです。
これには許可を設定する必要がありますか? アプリがバックグラウンドにある場合、Apple は接続を処理するアプリを拒否しますか?
前もって感謝します!!
iOS はマルチタスク API を提供します。つまり、アプリがバックグラウンドにある場合でも、その API の一部にアクセスできます。これらのサービスは -
CoreLocation
そのため、アプリがフォアグラウンドにないときに使用して、位置情報の更新を確実に送信できます。
このリンク - iOS マルチタスキングには、アプリがバックグラウンドのときにサービスを開始するコードがあります。ステップバイステップの説明
NSTimer
してバックグラウンドでUIApplication:beginBackgroundTaskWithExpirationHandler:
x
時間が短い場合はUIApplication:backgroundTimeRemaining
問題なく動作し、時間が長い場合x
は、バックグラウンド タスクが強制終了されるのを避けるために、時間がなくなる前にロケーション マネージャーを再度有効 (および無効) にする必要があります。location は許可されている 3 つのタイプのバックグラウンド実行の 1 つであるため、これは機能します。ここでは、アップルのドキュメントから ( 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 で送信できると思います