6

iOS 7 でバックグラウンドで実行されているアプリケーションからサーバーに小さなデータ (場所の座標) を送信したいと考えています。この目的のために NSURLSessions を使用しています。
この目的で使用する必要があるセッションの種類について混乱しています:
デフォルト セッション:バックグラウンドでデフォルト セッションを作成して使用できますか。はいの場合、ネットワーク障害を適切に処理できます。
バックグラウンド セッション: バックグラウンド セッションを使用してデータを NSData オブジェクトとしてアップロードできますか。

PS: どちらの場合も、ネットワーク障害を処理するコードは非常にありがたいものです。

4

1 に答える 1

7

バックグラウンド セッションを使用することをお勧めします。

タスクを完了するには、最大 10 分のバックグラウンド有効期限識別子を使用して、デフォルト セッションまたは通常の NSURLConnectionを使用できます。

バックグラウンド タスク識別子のドキュメント

https://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/occ/instm/UIApplication/beginBackgroundTaskWithExpirationHandler :

バックグラウンド タスクで NSURLConnection を使用する (iOS 6 のサポートも利用できます)

バックグラウンドに入るときの NSURLConnection のベスト プラクティス

新しい標準では、バックグラウンド セッションを使用してダウンロード/サーバー アップロードを処理できます。

バックグラウンド ダウンロードの処理に関する Apple のドキュメント

https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/URLLoadingSystem/Articles/UsingNSURLSession.html#//apple_ref/doc/uid/TP40013509-SW1

テクニックを説明する Apple のシンプルなプロジェクト

https://developer.apple.com/library/ios/samplecode/SimpleBackgroundTransfer/Listings/SimpleBackgroundTransfer_APLViewController_m.html#//apple_ref/doc/uid/DTS40013416-SimpleBackgroundTransfer_APLViewController_m-DontLinkElementID_7

これがあなたを助けることを願っています!

于 2014-01-01T13:28:59.357 に答える