-
怎么下載源碼
查看全部 -
案例小結(jié)案例小結(jié)
查看全部 -
isExists
查看全部 -
getThreads
查看全部 -
updateThread
查看全部 -
deleteThread
查看全部 -
insertThread
查看全部 -
ThrewadDAO
查看全部 -
ThreadInfo
查看全部 -
FileInfo
查看全部 -
網(wǎng)絡(luò)下載的關(guān)鍵點
查看全部 -
學(xué)習(xí)內(nèi)容
查看全部 -
Activity是如何與Service進(jìn)行交互
Activity中通過Intent傳遞參數(shù)給Service
Intent intent = new Intent(MainActivity.this,DownloadService.class);
intent.setAction(DownloadService.ACTION_START);
intent.putExtra("fileInfo",fileInfo);
startService(intent);
Service中onStartCommand方法接受Activity傳來的參數(shù)
if(ACTION_START.equals(intent.getAction())){
FileInfo fileInfo = (FileInfo)intent.getSerializableExtra("fileInfo");
new InitThread(fileInfo).start();?? //啟動初始化線程
}else if(ACTION_STOP.equals(intent.getAction())){
FileInfo fileInfo = (FileInfo)intent.getSerializableExtra("fileInfo");
if(mTask != null){
mTask.isPause = true;?? //暫停
}
}
查看全部 -
好的查看全部
-
網(wǎng)絡(luò)下載的關(guān)鍵點查看全部
-
多線程斷點續(xù)傳查看全部
-
案例思維導(dǎo)圖查看全部
-
斷點續(xù)傳內(nèi)容綱要查看全部
-
【習(xí)敘1】 通篇下來其實思路挺清晰的,只是有點難度,需要多看幾遍才能了解。 整體實現(xiàn)思路是, 開始下載 -- Service接收到指令 -- 去初始化下載的文件:創(chuàng)建文件/獲得文件長度。---初始化專門用于下載的類,下載任務(wù)類執(zhí)行下載方法 --- 下載方法會先通過url找到數(shù)據(jù)庫里面對應(yīng)的線程數(shù)據(jù),如果找不到會創(chuàng)建一條新的。---然后拿這條線程去開啟一個專門用于下載的線程,里面會拿到這條線程數(shù)據(jù)的下載進(jìn)度,然后給connection去設(shè)置下載范圍,還有給raf去設(shè)置下載寫入位置 --- 然后邊下載邊寫入數(shù)據(jù)邊更新UI。 暫停下載:Service接收到暫停指令,會把下載任務(wù)類的pause參數(shù)設(shè)置為ture,這樣下載的線程會因此暫停下載,同時,會把當(dāng)前的進(jìn)度保存到下載數(shù)據(jù)里面去,以便日后續(xù)傳。 下載完成:下載完成了以后,會刪除數(shù)據(jù)庫里面的下載數(shù)據(jù),同時close掉raf,disconnected掉coon等等操作。 ----以上便是整個功能的實現(xiàn)邏輯---------- 意見:其實我不太明白,為什么要通過一個接口去定義下載數(shù)據(jù)的增刪改查操作,然后給這個接口再安排一個實現(xiàn)類,再來實現(xiàn)相關(guān)邏輯。我覺得完全可以跳過接口這一環(huán),直接定義一個操作數(shù)據(jù)庫類的,來完成下載數(shù)據(jù)的操作,沒必要多了接口這一重關(guān)卡吧。 ---------------- 這門課程學(xué)到的東西還是比較多的,學(xué)到的知識點將在【習(xí)敘2】里寫一下。查看全部
-
mark查看全部
-
學(xué)習(xí)內(nèi)容查看全部
-
創(chuàng)建DBHelper工具類查看全部
舉報