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() } }

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

相关内容

热门资讯

第六分钟了解!悟空大厅辅助助手... 第六分钟了解!悟空大厅辅助助手下载安装!竟然是真的有辅助攻略(有挂规律)-哔哩哔哩进入游戏-大厅左侧...
两分钟了解!竹间茶馆辅助!本来... 两分钟了解!竹间茶馆辅助!本来是有辅助攻略(真实有挂)-哔哩哔哩1、用户打开应用后不用登录就可以直接...
2分钟了解!友友联盟辅助器!竟... 2分钟了解!友友联盟辅助器!竟然存在有辅助工具(有挂攻略)-哔哩哔哩1、每一步都需要思考,不同水平的...
第8分钟了解!518互娱辅助器... 第8分钟了解!518互娱辅助器下载!都是是真的有辅助工具(确实有挂)-哔哩哔哩518互娱辅助器下载透...
第八分钟了解!雀姬辅助脚本!总... 第八分钟了解!雀姬辅助脚本!总是是有辅助方法(有挂助手)-哔哩哔哩1、起透看视 雀姬辅助脚本辅助软件...
第9分钟了解!微信财神十三章辅... 第9分钟了解!微信财神十三章辅助安装包!确实真的是有辅助教程(有挂教程)-哔哩哔哩小薇(辅助器软件下...
一分钟了解!约战武汉辅助软件!... 一分钟了解!约战武汉辅助软件!果然真的有辅助插件(有挂方针)-哔哩哔哩1、不需要AI权限,帮助你快速...
第九分钟了解!咸宁方片十三张透... 第九分钟了解!咸宁方片十三张透视脚本!本来一直总是有辅助技巧(有挂方针)-哔哩哔哩咸宁方片十三张透视...
第六分钟了解!微信小游戏辅助器... 第六分钟了解!微信小游戏辅助器!切实一直总是有辅助技巧(有挂工具)-哔哩哔哩1、打开软件启动之后找到...
第八分钟了解!蘑菇云辅助使用视... 第八分钟了解!蘑菇云辅助使用视频!原来有辅助技巧(证实有挂)-哔哩哔哩1)蘑菇云辅助使用视频辅助插件...