前提・実現したいこと
Swift iOS12~
バックグラウンド時に、画像データを取得したい。
サーバーには、1枚の大きな画像を複数タイルに分割した画像があります。
1タイルダウンロード完了後1に、次のタイルをダウンロードを開始2、のように順次ダウンロードを行なっています。
並列でのダウンロードは行いません。
試したこと
Background URL Session を使用すると、
バックグランド移行後に*1のダウンロードは完了しますが、*2の処理が開始されません。
バックグランド中に、全てのタイルをダウンロードする方法はありますか?
該当のソースコード
一部を省略しています。
static let config = URLSessionConfiguration.background(withIdentifier: UUID().uuidString) static let session = URLSession(configuration: config, delegate: self, delegateQueue: nil) private callback: () -> () func download(callback: () -> ()) { self.callback = callback session.downloadTask(with: URLRequest(url: url)).resume() } func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) { callback() } func test() { // すべてのタイルをダウンロード完了判定 download() { // 1つダウンロードが終了した後に次のダウンロードを開始する test() } }
あなたの回答
tips
プレビュー