Android 下载器

Muses

Muses是一个使用方便的Android下载器框架,作为一个刚毕业进入公司的职场萌新,接到这个组件开发任务的时候内心是十分忐忑的,经过一周的开发,基本形成了1.0版本,后续会对Muses进行不断优化升级,增加更多特性,欢迎提出issue。

项目地址

Muses有以下优点:

  • 支持在Activity、Service、Fragment、Dialog、popupWindow、Notification等组件中使用
  • 支持HTTP断点续传
  • 多任务自动调度管理

截图:

image

基本使用:

依赖:
compile 'com.kinsomy:Muses:1.0.0'
step1:申请权限

由于Muses是一个网络下载框架,所以会涉及到网络请求以及文件读写。所以使用之前要申请以下权限。

如果你需要适配Android6.0及以上机型,还需要动态申请权限

<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:注册广播监听器
private DownloadReceiver mDownloadReceiver;
mDownloadReceiver = new DownloadReceiver();
mDownloadReceiver.register(this);

//自定义Receiver继承AbsNewDownloadReceiver,接受回调
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:创建下载任务
//首先实例化manager
private DownloadManager mManager;
mManager = new DownloadManager(this);

//调用manager的方法,传入文件夹、文件名、下载链接、id(可为空)
DownloadTask task = mManager.addDownloadTask(dir, fileName, url, id);

这样就可以创建一个下载任务了,我的设计思想是,使用者自己创建的task将由使用者自行管理,对于task的运行将交由manager管理。

这样做的好处是可以实现高度的定制化,使用者完全可以根据自己的需要来操作task。

step4:开始下载任务
mManager.startTask(task);
取消任务
mManager.cancel(taskId);
暂停任务
mManager.pause(taskId);
恢复任务
mManager.resume(taskId);

Version Log

v_1.0.0 : 下载器基本功能实现

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.
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值