关于ios中后台长时间下载任务的实现与走过的坑

先做一个简单的笔记

1.ios7之前实现后台长时间的任务是不可能完成的事情,即使使用timer监测一直索取的方式也不会打破ios系统最多允许应用后台运行10min的限定.

2.ios7之后出现了NSURLSession,这是一个福音.我们进行相应的配置,它就可以实现后台的长时间下载,并且超过系统的允许时间之后,程序被ios系统杀死,这个后台任务又由ios系统接手,并继续进行后台任务.

这是苹果的官方文档介绍:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

下边是主要点的截图:

时间: 2024-12-24 23:36:53

关于ios中后台长时间下载任务的实现与走过的坑的相关文章

iOS开发:后台运行以及保持程序在后台长时间运行

第一部分 1.先说说iOS 应用程序5个状态: 停止运行-应用程序已经终止,或者还未启动. 不活动-应用程序处于前台但不再接收事件(例如,用户在app处于活动时锁住了设备). 活动-app处于“使用中”的状态. 后台-app不再屏幕上显示,但它仍然执行代码. 挂起-app仍然驻留内存但不再执行代码. 按下Home键时,app从活动状态转入后台,绝大部分app通常在几秒内就从后台变成了挂起. 在内存吃紧的时候,iphone会首先关闭那些挂起的app. 从 iOS 4 开始,应用就可以在退到后台后,

保持程序在后台长时间运行-b

iOS为了让设备尽量省电,减少不必要的开销,保持系统流畅,因而对后台机制采用墓碑式的“假后台”.除了系统官方极少数程序可以真后台,一般开发者开发出来的应用程序后台受到以下限制:1.用户按Home之后,App转入后台进行运行,此时拥有180s后台时间(iOS7)或者600s(iOS6)运行时间可以处理后台操作2.当180S或者600S时间过去之后,可以告知系统未完成任务,需要申请继续完成,系统批准申请之后,可以继续运行,但总时间不会超过10分钟.3.当10分钟时间到之后,无论怎么向系统申请继续后台

iOS中各种风格时间轴的设计及总结

前言 上一篇给大家总结了绘图各种画法,今天紧接着给大家在总结时间轴的各种设计,其中也用到了绘图. 时间轴有什么作用呢? 现在在项目当中时间轴已经变得无处不在了.最典型的就是社交媒体了,像Facebook和人人网这样的SNS社区会将你的生活以时间轴的形式呈现出来,QQ,微博和Twitter也自不必说,同样以时间轴来排列信息,而移动APP Path更是以时间轴而出名. 时间轴不仅帮助用户梳理信息,更是用户交互的基础规则. 今天就给大家讲讲各种时间轴风格的不同实现.在这里先让大家看看这3种时间轴风格的

iOS中获取当前时间,设定时间,并算出差值

1 NSDate *date = [NSDate date];//获取当前时间 2 NSTimeZone *zone = [NSTimeZone systemTimeZone];//修改时区 3 NSInteger interval1 = [zone secondsFromGMTForDate: date];//修改时区 4 _localDate1 = [date dateByAddingTimeInterval: interval1];//修改时区 5 NSLog(@"~~~~~~~~~~~~

iOS中获取当前时间和日期并设置格式

获取当前时间 NSDate *  timeDate=[NSDate date]; NSDateFormatter  *dateformatter=[[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"HH:mm:ss"]; //[dateformatter setDateFormat:@"HH-mm-ss"]; NSString *  locationString=[dateformatter

iOS中可以设定时间自动消失提示框的三种实现方式

//============================================================================== #pragma mark - 一.显示定制View的消息,定时消失 //============================================================================== +(void)showMessage:(NSString *)message duration:(NSTim

iOS 中plist文件中配置key值冲突的现象

iOS开发一些特殊的软件需要在项目中配置对应的key值,然而近期在项目中发现一个有意思的现象,苹果官方文档中提供的key值很多,但其实有一些彼此可能有冲突,当你同时配置了彼此冲突的key值,可能会出现一些奇葩的现象,而且不容易发现问题所在,下面我就我遇到的情况和大家分享一下: 因为项目需要,需要配置定位相关的key值,同时需要后台长时间运行,所以在应用中我配置了NSLocationWhenInUseUsageDescription这个定位的key值,为了在使用时获取用户的位置信息:同时我用申请了

iOS中几种常用的数据存储方式

自己稍微总结了一下下,方便大家查看 1.write直接写入文件的方法 永久保存在磁盘中,可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据全部存放在一个属性列表文件(*.plist文件)中, 具体步骤大致如下: 第一步:获得文件即将保存的路径: NSArray*documentPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,Y

iOS中 流媒体播放和下载 韩俊强的博客

每日更新关注:http://weibo.com/hanjunqiang  新浪微博 iOS中关于流媒体的简介:介于下载本地播放与实时流媒体之间的一种播放形式,下载本地播放必须全部将文件下载完成后才能播放,而渐进式下载不必等到全部下载完成后再播放,它可以一边下载一边播放,在完成播放内容之后,整个文件会保存在手机上. 实时流媒体 实时流媒体是一边接收数据包一边播放,本地不保留文件副本,实时流式传输总是实时传送,可以实时实况转播,支持随机访问,用户可以快进或者快退以观看前面或后面的内容.实时流媒体传输