Muses
Muses是一個(gè)使用方便的Android下載器框架,作為一個(gè)剛畢業(yè)進(jìn)入公司的職場(chǎng)萌新,接到這個(gè)組件開(kāi)發(fā)任務(wù)的時(shí)候內(nèi)心是十分忐忑的,經(jīng)過(guò)一周的開(kāi)發(fā),基本形成了1.0版本,后續(xù)會(huì)對(duì)Muses進(jìn)行不斷優(yōu)化升級(jí),增加更多特性,歡迎提出issue。
Muses有以下優(yōu)點(diǎn):
- 支持在Activity、Service、Fragment、Dialog、popupWindow、Notification等組件中使用
- 支持HTTP斷點(diǎn)續(xù)傳
- 多任務(wù)自動(dòng)調(diào)度管理
截圖:
image
基本使用:
依賴(lài):
compile 'com.kinsomy:Muses:1.0.0'
step1:申請(qǐng)權(quán)限
由于Muses是一個(gè)網(wǎng)絡(luò)下載框架,所以會(huì)涉及到網(wǎng)絡(luò)請(qǐng)求以及文件讀寫(xiě)。所以使用之前要申請(qǐng)以下權(quán)限。
如果你需要適配Android6.0及以上機(jī)型,還需要?jiǎng)討B(tài)申請(qǐng)權(quán)限。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
step2:注冊(cè)廣播監(jiān)聽(tīng)器
private DownloadReceiver mDownloadReceiver;
mDownloadReceiver = new DownloadReceiver();
mDownloadReceiver.register(this);
//自定義Receiver繼承AbsNewDownloadReceiver,接受回調(diào)
private class DownloadReceiver extends AbsNewDownloadReceiver {
@Override
public void onTaskErrorEvent(NewDownloadTask task, int code) {
}
@Override
public void onTaskCancelEvent(NewDownloadTask task) {
}
@Override
public void onTaskPauseEvent(NewDownloadTask task) {
}
@Override
public void onTaskCompletedEvent(NewDownloadTask task) {
}
@Override
public void onTaskStartEvent(NewDownloadTask task) {
}
@Override
public void onTaskDownloadingEvent(NewDownloadTask task, boolean showProgress) {
}
}
step3:創(chuàng)建下載任務(wù)
//首先實(shí)例化manager
private DownloadManager mManager;
mManager = new DownloadManager(this);
//調(diào)用manager的方法,傳入文件夾、文件名、下載鏈接、id(可為空)
DownloadTask task = mManager.addDownloadTask(dir, fileName, url, id);
這樣就可以創(chuàng)建一個(gè)下載任務(wù)了,我的設(shè)計(jì)思想是,使用者自己創(chuàng)建的task將由使用者自行管理,對(duì)于task的運(yùn)行將交由manager管理。
這樣做的好處是可以實(shí)現(xiàn)高度的定制化,使用者完全可以根據(jù)自己的需要來(lái)操作task。
step4:開(kāi)始下載任務(wù)
mManager.startTask(task);
取消任務(wù)
mManager.cancel(taskId);
暫停任務(wù)
mManager.pause(taskId);
恢復(fù)任務(wù)
mManager.resume(taskId);
Version Log
v_1.0.0 : 下載器基本功能實(shí)現(xiàn)
License
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.