使用ASIHTTPRequest與NSOperationQueue實現(xiàn)的下載管理

這些時間做的一個下載上傳項目,恰好又看到 DeveloperLx 吐槽使用AFNetworkingNSOperationQueue 多么坑的文章。于是想分享下我是怎么做的,不過是使用的
ASIHTTPRequest + NSOperationQueue
github 同步地址:我的github

我實現(xiàn)的效果瀏覽 :

downloadQueue.gif

主要思路

對每一個下載任務 生成一個 Request 添加到 NSOperationQueue 隊列 中,在下載過程中做監(jiān)聽,對相應任務做出相應的暫停,取消,恢復,存檔等操作。界面更新 則使用 block 做監(jiān)聽

核心代碼

代碼不能完全開源,提供關鍵代碼供學習交流
歡迎 Star 沒準兒哪天就開源了 _

NSOperationQueue 下載隊列

data.png

1、 addDownloadMisson 添加下載隊列

addDownloadMisson.png

2、cancelDownloadMisson 取消下載隊列

cancelDownloadMisson.png

3、suspendDownloadMisson 暫停下載隊列

suspendDownloadMisson.png

4、resumeDownloadMisson 恢復下載隊列

resumeDownloadMisson.png

5、addListener 添加監(jiān)聽

addListener.png

ASIFormDataRequest 下載請求



上傳做法是類似的

不過需要做到斷點上傳的話,就有點不同了。
我的做法是 把每個上傳操作封裝成 NSBlockOperation 添加到 NSOperationQueue 上傳隊列中,在封裝成NSBlockOperation的時候把上一次的 token 還有已上傳的數(shù)據(jù)量傳入。 界面更新也是使用 Block做監(jiān)聽就行

如果你有什么想法歡迎與我交流

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容