Re: [问题] 背景下载的相关问题

楼主: benjenq (Ben(憋))   2014-06-03 17:03:17
※ 引述《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 只为了解决背景下载问题,
大概没办法上架。
作者: tom19830924 (Tom Hsu)   2014-06-03 17:54:00
今天下午找了一些资料测试一下 iOS7的确只有3分钟 但目前维护的程式下载档案会另开thread 而我测试在进入背景之后 另开的thread会被kill或是pause掉 所以续传看起来办不到 只能在进背景之后另开BackgroundTask 重新下载档案

Links booklink

Contact Us: admin [ a t ] ucptt.com