第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

我的進度條每次都沒有到達100%文件就已經(jīng)下載完了

我的進度條每次都沒有到達100%文件就已經(jīng)下載完了,可是我設(shè)置的是500毫秒啊

正在回答

4 回答

這個一般都是最后一次文件寫入完時間沒有一個周期,最簡單的辦法,就是直接在接收到下載完成的廣播后,強制設(shè)置進度為100即可

0 回復(fù) 有任何疑惑可以回復(fù)我~
我是這樣寫的??只貼主要代碼
while?((len?=?input.read(buffer))?!=?-1){
//寫入文件
????????raf.write(buffer,0,len);

????????//累加整個文件的下載進度
????????finished?+=?len;
????????//累加每個線程的下載進度
????????mThreadInfo.setFinished(mThreadInfo.getFinished()?+?len);
????????//發(fā)送廣播給activity
????????intent.putExtra("finished",(int)(finished*1.0/fileinfo.getLength()*100));
????????intent.putExtra("id",fileinfo.getId());
????????mContext.sendBroadcast(intent);

????????//在下載暫停是把下載進度保存在數(shù)據(jù)庫
????????if(isPause){
????????????Log.e("11111","線程保存=="+mThreadInfo.getFinished());
????????????mDAO.updateThread(mThreadInfo.getUrl(),mThreadInfo.getId(),mThreadInfo.getFinished());
????????????return;
????????}
????}
????我并沒有做500毫秒的限制?我會一直發(fā)???但是我再接受的時候做了判斷?請看
????
????if(DownLoadService.ACTION_UPDATE.equals(intent.getAction())){
????int?finished?=?intent.getIntExtra("finished",0);
?????????if(progress?!=?finished){
?????????????progress?=?finished;
?????????????mProgressH.setProgress(finished);
?????????????mProgressR.setProgress(finished);
?????????}
}
定義個變量來比對穿過來的數(shù)值??不一樣就更新進度條??并且把最新的進度賦值給我們定義的變量??等傳過來的大于我們的變量就接著更新進度條??如此循環(huán)?完美解決


0 回復(fù) 有任何疑惑可以回復(fù)我~

最后一次廣播沒有發(fā)回界面,可以在while里判斷一下當下載內(nèi)容的進度達到文件的length時提交一次100使進度條填充滿


0 回復(fù) 有任何疑惑可以回復(fù)我~

因為當你下載完成的時候 離與上次發(fā)送廣播沒有500毫秒 所以就沒有發(fā)送廣播更新 可以在while循環(huán)結(jié)束時再發(fā)送一次廣播

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
Android-Service系列之多線程斷點續(xù)傳下載
  • 參與學(xué)習(xí)       21811    人
  • 解答問題       60    個

本視頻教程主要代領(lǐng)我們要學(xué)習(xí)的多線程續(xù)傳下載程序的開發(fā)

進入課程

我的進度條每次都沒有到達100%文件就已經(jīng)下載完了

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號