作者benjenq (Ben(憋))
看板MacDev
标题Re: [问题] 背景下载的相关问题
时间Tue Jun 3 17:03:17 2014
※ 引述《tom19830924 (Tom Hsu)》之铭言:
: 公司PM提出几个需求 我不知道该怎样处理 想请问各位同仁
: 第一个问题~
: 如果当前下载的档案 在App进入背景之後 当前下载的档案要能够"继续续传"
: 然後当前下载这个request他是存在一个queue中
: 所以里头有很多下载档案的request
: 正在下载的这个处理完继续执行queue中下一个下载request
: 我认知是当前的Request在切到背景之後 应该会中断
: 然後要在applicationDidEnterBackground重新开Task 重新发请求
: 所以应该是得要重新下载 至於queue下载这部分我不知道办不办得到
: 我的记忆还停留在苹果只给10分钟的背景处理
提供一下心得...有误也请不吝指正。
以iOS7一般的情况来说,程式在跑的时候只要不去动它,
一律只有三分钟(iOS6以前是10分钟),
比较不好的做法是使用
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
那麽就不会进入休眠,
但是一旦用户离开了程式,照样也是三分钟...
依你的做法,我觉得一般情况应该是做不到,
时间一到,程式就会进入休眠,所有的工作一律暂停,
直到下次被唤醒才会继续。
不过,如果是iOS7的话,
有背景下载的API可以用,
叫做 NSURLSessionDownloadTask
方法实作正确时,会一直下载到结束,
下载结束若程式已进入休眠,
结束时会透过 handleEventsForBackgroundURLSession 唤醒,
唤醒之後约有张庆忠(半分钟)的时间,
背景运作的状态下可以做别的事情。
: 第二个问题~
: 跟Server要资料返回的JSON 里面有至少3000笔以上的图片网址 多则6000笔以上
: 当得到这一堆的图片网址之後 开一个queue开始背景下载全部图片 然後存到Local
: 这样不会使得记忆体爆掉吗...
: 另外还得额外要求跟第一个问题一样
: 如果切到背景请继续同时下载全部图片跟档案...
记忆体会不会爆掉,得看有没有需要把图档或是资料读进记忆体内。
若是单纯下载东西存成档案,会爆掉的可能是储存空间而非记忆体...
至於推文提到 NewsStand 背景下载,
虽然iOS5开始支援,
但是应该只适用於 NewsStand 型APP,
一般程式用了 NewsStand Kit 只为了解决背景下载问题,
大概没办法上架。
--
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MacDev/M.1401786201.A.A2C.html
※ 编辑: benjenq (59.127.156.72), 06/03/2014 17:13:38
1F:推 tom19830924:今天下午找了一些资料测试一下 iOS7的确只有3分钟 但 06/03 17:54
2F:→ tom19830924:目前维护的程式下载档案会另开thread 而我测试在进入 06/03 17:55
3F:→ tom19830924:背景之後 另开的thread会被kill或是pause掉 所以续传 06/03 17:55
4F:→ tom19830924:看起来办不到 只能在进背景之後另开BackgroundTask 重 06/03 17:56
5F:→ tom19830924:新下载档案 06/03 17:58