AVAssetDownloadDelegate方法在后台没有被调用
创始人
2024-11-12 20:00:20
0

当应用程序运行在后台时,下载会在一个单独的进程中运行,因此AVAssetDownloadDelegate方法不会被自动调用。要解决这个问题,需要在调用startSession方法之前向assetDownloadTask对象添加一个后台URL会话配置,并在AppDelegate中设置会话委托。示例代码如下:

//获取后台下载的会话ID let backgroundConfiguration = URLSessionConfiguration.background(withIdentifier: "com.myapp.backgroundDownload")

//创建AVAssetDownloadURLSession对象 let assetDownloadURLSession = AVAssetDownloadURLSession(configuration: backgroundConfiguration, assetDownloadDelegate: self, delegateQueue: OperationQueue.main)

//创建assetDownloadTask对象 let assetDownloadTask = assetDownloadURLSession.makeAssetDownloadTask(asset: asset, assetTitle: "Asset Title", assetArtworkData: nil, options: options)

//在AppDelegate中设置会话委托 func application(_ application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) { if identifier == "com.myapp.backgroundDownload" { assetDownloadSessionCompletionHandler = completionHandler } }

//在下载完成时调用completionHandler func urlSessionDidFinishEvents(forBackgroundURLSession session: URLSession) { if let completionHandler = assetDownloadSessionCompletionHandler { assetDownloadSessionCompletionHandler = nil completionHandler() } }

这样,在后台下载完成后,会话委托将自动调用,并调用应用程序委托中的相应方法。

相关内容

热门资讯

微乐小程序真的有挂!小程序微乐... 微乐小程序真的有挂!小程序微乐辅助器ios(开挂)器-竟然关于是有挂在进入软件靠谱后,参与本局比赛的...
微乐小程序真的有挂!微信微乐自... 微乐小程序真的有挂!微信微乐自建房辅助工具(开挂)插件-好像推荐是有挂1、模拟器是什么优化,俱乐部是...
微信小程序微乐破解器!微信微乐... 微信小程序微乐破解器!微信微乐辅助(开挂)app-真是了解真的有挂暗藏猫腻,小编详细说明破解器有用吗...
微乐小程序黑科技免费!微乐小程... 微乐小程序黑科技免费!微乐小程序多功能修改器(开挂)教程-原来教你真的是有挂1、上手简单,内置详细流...
微乐小程序透视辅助!微乐小程序... 微乐小程序透视辅助!微乐小程序黑科技辅助工具2026最新推荐(开挂)工具-真是科普是有挂1、让任何用...
微乐小程序透视辅助!微乐麻将脚... 微乐小程序透视辅助!微乐麻将脚本透视(开挂)器-原来有挂真的有挂1、起透看视 辅助软件价格2、随意选...
微乐小程序黑科技!广西微乐小程... 微乐小程序黑科技!广西微乐小程序控制器(开挂)教程-确实揭露真的有挂1、打开软件启动之后找到中间准星...
微乐小程序透视挂!微乐自建房免... 微乐小程序透视挂!微乐自建房免费黑科技下载苹果(开挂)神器-切实必备真的有挂1、辅助器安装包、辅助器...
微信小程序微乐破解器!微乐江苏... 微信小程序微乐破解器!微乐江苏自建房辅助app(开挂)插件-本来透视存在有挂进入游戏-大厅左侧-新手...
微乐小程序透视挂!微乐宁夏小程... 微乐小程序透视挂!微乐宁夏小程序插件(开挂)教程-确实了解是真的挂1)有没有挂:进一步探索有辅助吗大...