IOS多线程后台运行实例

一、IOS7以后支持多线程后台运行。后台运行必须注意一下几点:
     1)在xcode中配置 capabilities  -  > background fetch  打开
     2)Appdelegate中的didFinishLounchingWithOptions方法中设置  扫描后台进程的时间间隔(默认情况下是不扫描)。

二、实例解析
     在这个实例中,会创建一个NSURLSessionDownloadTask,当图片下载完成后,将其存储到某一个文件中,然后设置到imageView中进行显示
     1)在xcode创建singleView工程BackgroundTransfer。设置允许后台fetch数据
IOS多线程后台运行实例_第1张图片

     2)首先在应用的AppDelegate的类中实现相关方法
IOS多线程后台运行实例_第2张图片

IOS多线程后台运行实例_第3张图片

IOS多线程后台运行实例_第4张图片

     3)mainViewController中的代码,首先这个viewController必须实现协议:  < NSURLSessionDelegate , NSURLSessionTaskDelegate , NSURLSessionDownloadDelegate >
     在viewDidLoad方法中执行request请求:
IOS多线程后台运行实例_第5张图片

接着实现session相关的三个协议的方法
IOS多线程后台运行实例_第6张图片
在上述方法执行完成后,会接着调用如下方法,判断任务在执行过程中是否出错
IOS多线程后台运行实例_第7张图片
当所有任务都执行完成后,最执行方法。
IOS多线程后台运行实例_第8张图片

上边所有的方法执行完成后,这个任务就算是已经处理完成了。着这个过程中,协议还提供了监控这个下载过程的方法
IOS多线程后台运行实例_第9张图片

你可能感兴趣的:(ios)