真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在android項目中使用多線程下載文件-創(chuàng)新互聯(lián)

如何在android項目中使用多線程下載文件?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司主營禹城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,禹城h5小程序定制開發(fā)搭建,禹城網(wǎng)站營銷推廣歡迎禹城等地區(qū)企業(yè)咨詢

多線程下載文件(支持暫停、取消、斷點續(xù)傳)

多線程同時下載文件即:在同一時間內(nèi)通過多個線程對同一個請求地址發(fā)起多個請求,將需要下載的數(shù)據(jù)分割成多個部分,同時下載,每個線程只負責(zé)下載其中的一部分,最后將每一個線程下載的部分組裝起來即可。

涉及的知識及問題

  • 請求的數(shù)據(jù)如何分段
  • 分段完成后如何下載和下載完成后如何組裝到一起
  • 暫停下載和繼續(xù)下載的實現(xiàn)(wait()、notifyAll()、synchronized的使用)
  • 取消下載和斷點續(xù)傳的實現(xiàn)
     

一、請求的數(shù)據(jù)如何分段

首先通過HttpURLConnection請求總文件大小,而后根據(jù)線程數(shù)計算每一個線程的下載量,在分配給每一個線程去下載

fileLength = conn.getContentLength();
//根據(jù)文件大小,先創(chuàng)建一個空文件
//“r“——以只讀方式打開。調(diào)用結(jié)果對象的任何 write 方法都將導(dǎo)致拋出 IOException。
//“rw“——打開以便讀取和寫入。如果該文件尚不存在,則嘗試創(chuàng)建該文件。
//“rws“—— 打開以便讀取和寫入,對于 “rw”,還要求對文件的內(nèi)容或元數(shù)據(jù)的每個更新都同步寫入到底層存儲設(shè)備。
//“rwd“——打開以便讀取和寫入,對于 “rw”,還要求對文件內(nèi)容的每個更新都同步寫入到底層存儲設(shè)備。
RandomAccessFile raf = new RandomAccessFile(filePath, "rwd");
raf.setLength(fileLength);
raf.close();
//計算各個線程下載的數(shù)據(jù)段
int blockLength = fileLength / threadCount;

標題名稱:如何在android項目中使用多線程下載文件-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://weahome.cn/article/cdoesj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部