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