Android 下載器

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。

項(xiàng)目地址

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

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,996評(píng)論 25 709
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • 摘要:科學(xué)技術(shù)是第一生產(chǎn)力,推動(dòng)著社會(huì)的發(fā)展和進(jìn)步。不可否認(rèn)的給人們的工作、生活帶來(lái)的更切實(shí)的幫助,幫助我們提高工...
    婧婧想靜靜閱讀 1,166評(píng)論 0 1
  • 溫妮現(xiàn)在在S城市打拼著,與前任生了個(gè)女兒,前任甩手走了,留下溫妮和年幼的女兒。女兒由溫妮的父母在農(nóng)村老家?guī)兔φ?..
    cfc75d873252閱讀 157評(píng)論 0 0
  • 枝頭上的海棠花兒 驚艷地綻放奇葩 把美好的憧憬 借助著春風(fēng) 傳到遠(yuǎn)方 花為媒 傳播 美
    端陽(yáng)香草閱讀 301評(píng)論 3 1

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