backgroudDownload-05-网络后台下载

 1 //
 2 //  ViewController.m
 3 //  05-backgroudDownload
 4 //
 5
 6 #import "ViewController.h"
 7
 8 @interface ViewController () <NSURLSessionDownloadDelegate>
 9
10 @end
11
12 @implementation ViewController
13
14 - (void)viewDidLoad {
15     [super viewDidLoad];
16     // Do any additional setup after loading the view, typically from a nib.
17
18     NSURL *url = [NSURL URLWithString:@"http://218.76.27.57:8080/chinaschool_rs02/135275/153903/160861/160867/1370744550357.mp3"];
19
20     //创建后台配置
21 //    NSURLSessionConfiguration *config = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"backdownloadTask"];
22     NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
23
24     //根据配置对象来创建后台Session
25     NSURLSession *session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:[NSOperationQueue mainQueue]];
26
27
28     NSURLSessionDownloadTask *downloadTask = [session downloadTaskWithURL:url];
29
30     [downloadTask resume];
31
32
33
34 }
35
36 - (void)moveDownloadFile:(NSURL *)location ToPath:(NSString *)targetFilePath {
37
38     //目标路径
39     NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent:targetFilePath];
40
41     NSFileManager *manager = [NSFileManager defaultManager];
42
43     //判断目标路径下的文件是否存在,如果不存在,则剪切
44     BOOL exist = [manager fileExistsAtPath:filePath];
45     if (!exist) {
46
47         [manager moveItemAtURL:location toURL:[NSURL fileURLWithPath:filePath] error:nil];
48     }
49
50     NSLog(@"文件保存成功");
51
52
53 }
54
55 - (void)didReceiveMemoryWarning {
56     [super didReceiveMemoryWarning];
57     // Dispose of any resources that can be recreated.
58 }
59
60
61 #pragma mark - NSURLSessionDownloadDelegate
62
63 //下载完成时调用
64 - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
65 didFinishDownloadingToURL:(NSURL *)location {
66
67     NSLog(@"location:%@", location);
68
69
70     //把临时目录下的文件剪切到目标文件夹。
71     [self moveDownloadFile:location ToPath:@"Documents/jay.mp3"];
72
73
74 }
75
76 //监听下载进度,此协议方法可能会被调用多次
77 /*
78  bytesWritten:本次传输下载了多少字节
79  totalBytesWritten:已经下载了多少字节
80  totalBytesExpectedToWrite:文件的总大小
81
82  */
83 - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask
84       didWriteData:(int64_t)bytesWritten
85  totalBytesWritten:(int64_t)totalBytesWritten
86 totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite {
87
88     float progress = (float)totalBytesWritten / totalBytesExpectedToWrite;
89
90     NSLog(@"下载%.2f%%", progress * 100);
91
92
93 }
94
95
96 @end
时间: 2024-10-07 20:00:50

backgroudDownload-05-网络后台下载的相关文章

iOS NSURLSession 实现网络请求-文件下载-上传-后台下载

*  会话NSURLSession NSURLConnection通过全局状态来管理cookies, 认证信息等公共资源, 如果两个连接需要使用不同的资源配置情况时就无法解决, 这个问题在NSURLSession可以解决, NSURLSession同时对应着多个连接, 会话通过工厂方法来创建, 同一个会话中使用相同的状态信息, NSURLSession支持进程三种会话: 1. defaultSessionConfiguration : 进程内会话 (默认会话), 用来硬盘来缓存数据. 2. ep

WP8.1 Study17:网络之后台下载/上传及HttpClient

一.后台下载/上传 1.简介 使用BackgroundTransferGroup可以十分方便操作上传及下载文件,BackgroundDownloader和BackgroundUploader类中的方法提供一系列方法交互这一过程,因此我们也可以利用live tile或toast显示传输的状态. 2.下载代码 代码一: async void DownloadFile(Uri sourceUri, string destFilename) { cts = new CancellationTokenSo

iOS之网络数据下载和Json数据解析

iOS之网络数据下载和Json数据解析 简介 在本文中笔者将要给大家介绍iOS中如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据,以及如何显示数据和图片的异步下载显示 涉及到的知识点: 1.NSURLConnection异步下载封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 (1)什么是网络应用? 一般情况下, iPhone的计算机, 照相机不需要从网络上下载数据也能运行, 所以这

Android开发本地及网络Mp3音乐播放器(十四)网络音乐下载功能实现

实现功能: 实现网络音乐搜索功能 实现网络音乐下载功能 下载好的音乐目前不在播放器内,可以通过文件浏览器查看. 后续将博文,将实现歌词和下载音乐扫描功能. 经过将近4天,才发布这一篇博客,明显更新博客速度变慢了,因为没有自己的音乐服务器,网络上的音乐网站在这边博客发表的2016年5月已经很难找到免费且在线下载的了,就算找到解析也是一个难题.如果你在练习同样功能的Demo,请尽快下载练习,因为博主也无法保证我Demo下载功能时效性,因为我解析的音乐网站可能分分钟修改网页源码!!! 截止到目前的源码

Android中AsyncTask进行后台下载文件并在下拉菜单显示下载进度

在开发过程中,总会需要从网络上下载文件,有时候还需要将下载进度显示在下拉菜单中. 现在写了一个Demo,封装了AsyncTask下载文件和进度显示的代码,以后在做项目的时候能够直接进行使用. 效果图: 主界面只有一个按钮,比较简单: / layout / activity_main.xml : <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="h

IOS 开发之网络数据下载和JSON解析

简介 在本文中,我将给大家介绍ios中如何运用NSURLConnection从网络上下载数据,以及解析JSON数据格式的数据,还有数据的显示和图片异步下载. 涉及到的知识点: 1.NSURLConnection的异步下载和数据请求方法的封装. 2.认识JSON格式和JSON格式的解析使用 3.数据在模拟器上的显示和图片的异步下载(使用SDWebImage异步显示图片,SDWebImage是一个库) 注意: 在ios开发中,无论是数据还是图片都是使用异步下载方法,不能使用同步. 内容 首先,要完成

使用 NSURLSession 开发一个支持后台下载和断点续传的下载工具

NSURLSession 是 iOS 系统提供给我们的原生网络操作库,它提供了网络操作相关的一系列特性支持,比如缓存控制,Cookie管理,HTTP 认证处理等等,是一套整体的网络操作处理解决方案. 关于 NSURLSession 的基本特性,我们之前的一篇文章 NSURLSession 网络库 - 原生系统送给我们的礼物 有过详细的介绍,如果大家之前没有使用过这个库,可以先参考一下这篇内容. 这次我们不介绍任何 NSURLSession 的基础概念,我们将以一个实际的下载工具 APP 开发来实

ios 网络数据下载和JSON解析

ios 网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍ios中如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示 涉及到得知识: 1.NSURLConnection异步下载和封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 (1)什么是网络应用? 一般情况下, iPhone的计算机, 照相机不需要从网络上下载数据也能运行, 所以这

iOS之网络数据下载和JSON解析

iOS之网络数据下载和JSON解析 简介 在本文中笔者主要给大家介绍IOS如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示. 涉及到的知识点: 1.NSURLConnection 异步下载和封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 什么是网络应用? 需要通过联网进行操作的应用 网络应用的程序结构? c/s结构:即客户端/服务端 常见的

诺基亚超级LTE网络:下载5GB电影仅11秒

<<<-------------  <_< 向左看 外媒报道称,诺基亚正联合韩国运营商SK Telecom测试超级LTE网络,据说其速度能够达到3.7Gbps,这意味着即使下载5GB数据(比如:电影)也仅仅需要11秒时间. 目前,我们通常所见到的LTE网络速度大概是150Mbps,即使是更先进的LTE-Advanced网络也只能提供300Mbps的速度,而这与前文所提到的超级LTE网络相比,仍相差甚远. 报道指出,这种超级LTE网络尚处在概念验证阶段,而且并不会很快问世,因为