複数のファイルをダウンロードする必要があるアプリを開発しています。アプリがフォアグラウンドにあるときは問題ありません。
アプリがバックグラウンドにあるときにダウンロードを続行するには、次のコードを使用しています (アプリがアクティブでない場合の iOS バックグラウンド ダウンロードから):
self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask]; self.backgroundTask = UIBackgroundTaskInvalid; }]; /* ここでダウンロード コード、例えば getDataFromServer メソッドとしましょう */ [self getDataFromServer]; // そのダミーメソッド /* ダウンロード コードはここまでです */ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask]; self.backgroundTask = UIBackgroundTaskInvalid; });
このコードは、デバイスの画面がオンになるまで問題ありません。しかし、デバイスがスタンバイ状態になると、何かが起こり、ダウンロードが停止します。おそらく ios は、バックグラウンド プロセスのアクティブなインターネット接続を閉じます。
IOS 6 および 7 でスタンバイ中に接続を維持する方法はありますか?