Re: [問題] 背景下載的相關問題

看板MacDev作者 (Ben(憋))時間11年前 (2014/06/03 17:03), 11年前編輯推噓1(104)
留言5則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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://www.ptt.cc/bbs/MacDev/M.1401786201.A.A2C.html ※ 編輯: benjenq (59.127.156.72), 06/03/2014 17:13:38

06/03 17:54, , 1F
今天下午找了一些資料測試一下 iOS7的確只有3分鐘 但
06/03 17:54, 1F

06/03 17:55, , 2F
目前維護的程式下載檔案會另開thread 而我測試在進入
06/03 17:55, 2F

06/03 17:55, , 3F
背景之後 另開的thread會被kill或是pause掉 所以續傳
06/03 17:55, 3F

06/03 17:56, , 4F
看起來辦不到 只能在進背景之後另開BackgroundTask 重
06/03 17:56, 4F

06/03 17:58, , 5F
新下載檔案
06/03 17:58, 5F
文章代碼(AID): #1JZOzPei (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1JZOzPei (MacDev)