BreakPointsDownloadFrame
This is a break points download files frame for Android.
Install / Use
/learn @AndroidKun/BreakPointsDownloadFrameREADME
BreakPointsDownloadFrame
##这是一个多文件分段断点续传框架,可以帮助我们快速实现多文件分段断点续传功能。
#CSDN地址
#集成步骤
##1.在Module下的build.gradle中添加依赖
dependencies {
... ...
compile 'com.androidkun:breakpoints:1.0.0'
}
##2.开始下载以及暂停下载
viewHoder.btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DownloadUtils.downLoad(context, downloadInfo.getUrl(), downloadInfo.getSavePath(), downloadInfo.getFileName(), downloadInfo.getThreadCount());
}
});
viewHoder.btnPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
downloadInfo.setDownState(context.getResources().getString(R.string.state_pause));
viewHoder.textState.setText(downloadInfo.getDownState());
DownloadUtils.pauseDownLoad(context, downloadInfo.getUrl());
}
});
###参数解释: /** * 开始下载 * @param context * 上下文 * @param url * 下载链接 * @param savePath * 保存路径 * @param fileName * 下载线程数 * @param downloadThreadCount / public static void downLoad(Context context,String url,String savePath,String fileName,int downloadThreadCount){ ... ... } /* * 暂停下载 * @param context * 上下文 * @param url * 下载链接 */ public static void pauseDownLoad(Context context,String url){ ... ... }
##3.在Activity中注册EventBus获取下载进度和下载状态刷新UI ... public class MainActivity extends AppCompatActivity {
... ...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EventBus.getDefault().register(this);
initView();
initData();
}
private void initData() {
... ...
}
private void initView(){
... ...
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void getEventMessage(EventMessage eventMessage) {
switch (eventMessage.getType()){
case EventMessage.TYPE_START://开始下载
DownloadData start = (DownloadData) eventMessage.getObject();
adapter.refreshState(start.getUrl(),start.getLength(),getResources().getString(R.string.state_downloading));
break;
case EventMessage.TYPE_PROGRESS://下载进度
DownloadData progress = (DownloadData) eventMessage.getObject();
//刷新列表进度
adapter.updateProgress(progress.getUrl(),progress.getProgress());
break;
case EventMessage.TYPE_FINISHED://下载完成
DownloadData finished = (DownloadData) eventMessage.getObject();
adapter.refreshState(finished.getUrl(),finished.getLength(),getResources().getString(R.string.state_finished));
break;
case EventMessage.TYPE_ERROR://下载失败
DownloadData error = (DownloadData) eventMessage.getObject();
adapter.refreshState(error.getUrl(),error.getLength(),getResources().getString(R.string.state_fail));
break;
case EventMessage.TYPE_PAUSE://下载暂停
DownloadData pause = (DownloadData) eventMessage.getObject();
adapter.refreshState(pause.getUrl(),pause.getLength(),getResources().getString(R.string.state_pause));
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
}
###在getEventMessage()方法中可以获取到当前下载状态,DownloadData 封装了下载文件的url,下载进度,文件长度等信息。根据EventMessage的type区分事件类型,再做出相应处理。
public class DownloadData {
/**
* 下载链接
*/
private String url;
/**
* 下载进度(0-100)
*/
private int progress;
/**
* 文件大小
*/
private int length;
/**
* 下载消息
*/
private String msg;
/**
* 文件路径
*/
private String filePath;
... ...
}
Related Skills
node-connect
353.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
353.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
353.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
