これはシナリオです:
- バックグラウンド構成の NSURLSession
- ダウンロードまたはアップロードのタスクは、インターネット接続が悪いかインターネット接続がありません。
- ユーザーがアプリを閉じます。
- iOS がインターネット接続を取得すると、セッション タスクが開始されます。でも、
- タスクはまだインターネットを待っています。
- ユーザーがアプリを強制終了します
- システムはすべての保留中のタスクをキャンセルします
質問
ユーザーがアプリを再度開いたときに、タスクがキャンセルされたことを知ることは可能ですか?
はいの場合、どこですか?
この回答では、はい、可能ですが、エラーを返すコールバックを取得できません。
Alamofire を使用して、すべてのネットワーク コールを処理しています。ただし、Alamofire によって動作が変わるとは思えません。
編集 1
/// Networking manager with Background Session Configuration
static var backgroundManager: Alamofire.Manager = {
let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier("com.xxx.NetworkingManager.Identifier")
configuration.HTTPAdditionalHeaders = Manager.defaultHTTPHeaders
let backgroundManager = Alamofire.Manager(configuration: configuration)
return backgroundManager
}()