今天给大家分享在鸿蒙上一个按钮实现下载、暂停、取消、显示下载进度操作。
先看效果,如下图:
开始
暂停
下载中
下载完成
取消下载
开始写代码
①PRDownloader 的配置
下载功能使用的是 PRDownloader:
https://gitee.com/chinasoft_ohos/PRDownloader
首先,在 moudle 级别下的 build.gradle 文件中添加依赖:
implementation'com.gitee.chinasoft_ohos1.0.0'
在 config.json 中添加互联网许可:
"deviceConfig":{
"default":{
"directLaunch":false,
"network":{
"cleartextTraffic":true
}
}
}
"reqPermissions":[
{
"name":"ohos.permission.INTERNET"
}
]
在 AbilitySlice 的 onStart() 方法中初始化它。
PRDownloader.initialize(getApplicationContext());
②创建一个 ProgressBar 进度条
布局文件:
ProgressBar 的点击事件:
progressBar.setClickedListener(newComponent.ClickedListener(){
@Override
publicvoidonClick(Componentcomponent){
if(downloadId==0){
newToastDialog(getContext()).setText("开始下载").show();
downloadId=PRDownloader.download(url,path,name)
.build()
//恢复下载
.setOnStartOrResumeListener(newOnStartOrResumeListener(){
@Override
publicvoidonStartOrResume(){
progressBar.setProgressHintText("正在下载");
}
})
//暂停下载
.setOnPauseListener(newOnPauseListener(){
@Override
publicvoidonPause(){
progressBar.setProgressHintText("恢复下载");
}
})
//取消下载
.setOnCancelListener(newOnCancelListener(){
@Override
publicvoidonCancel(){
progressBar.setProgressHintText("已取消下载");
}
})
//下载进程 currentBytes当前下载字节,totalBytes文件总字节。
.setOnProgressListener(newOnProgressListener(){
@Override
publicvoidonProgress(Progressprogress){
longcurrentBytes=progress.currentBytes;
longtotalBytes=progress.totalBytes;
progressBar.setMaxValue((int)totalBytes);
progressBar.setProgressValue((int)currentBytes);
progressBar.setProgressHintText(newSizeUtil().getPrintSize(currentBytes)+"/"+newSizeUtil().getPrintSize(totalBytes));
}
})
.start(newOnDownloadListener(){
@Override
publicvoidonDownloadComplete(){
progressBar.setProgressHintText("下载完成");
status=PRDownloader.getStatus(downloadId);
text.setText(status.name());
}
@Override
publicvoidonError(Errorerror){
progressBar.setProgressHintText("下载出错");
downloadId=0;
text.setText(error.getServerErrorMessage());
}
});
status=PRDownloader.getStatus(downloadId);
text.setText(status.name());
//QUEUEDRUNNING下载中
}elseif(status.name().equals("QUEUED")||status.name().equals("RUNNING")){
PRDownloader.pause(downloadId);
newToastDialog(getContext()).setText("暂停下载").show();
status=PRDownloader.getStatus(downloadId);
text.setText(status.name());
//PAUSED暂停
}elseif(status.name().equals("PAUSED")){
PRDownloader.resume(downloadId);
newToastDialog(getContext()).setText("恢复下载").show();
status=PRDownloader.getStatus(downloadId);
text.setText(status.name());
//已完成下载
}elseif(progressBar.getProgressHintText().equals("下载完成")){
text.setText("已下载完成,存储路径:
"+path);
}
}
});
取消下载的操作:(因为需要在一个按钮上实现所以操作,所以取消使用长按来实现)
progressBar.setLongClickedListener(newComponent.LongClickedListener(){
@Override
publicvoidonLongClicked(Componentcomponent){
newToastDialog(getContext()).setText("取消下载").show();
PRDownloader.cancel(downloadId);
downloadId=0;
progressBar.setProgressValue(0);
progressBar.setProgressHintText("开始下载");
status=PRDownloader.getStatus(downloadId);
text.setText(status.name());
}
});
原文标题:鸿蒙手机上一个按钮实现下载操作!
文章出处:【微信公众号:HarmonyOS技术社区】欢迎添加关注!文章转载请注明出处。
审核编辑:彭菁
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
代码
+关注
关注
30文章
4983浏览量
74533 -
鸿蒙
+关注
关注
60文章
3058浏览量
46265
原文标题:鸿蒙手机上一个按钮实现下载操作!
文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony技术社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
linkboy编程语言已初步支持鸿蒙操作系统
linkboy是一门面向物联网、边缘计算、工业控制等领域的自研编程语言,近期已初步完成对鸿蒙操作系统(OpenHarmony)的支持,实现了编译器后端工具链和相关组件在
发表于 07-09 08:08
打印机如何取消打印任务
如果文档正在打印过程中需要取消打印任务,则直接点击打印任务窗口中的“暂停”按钮即可取消打印任务。也可能通过点击Windows任务栏右下角的打印机图标来打开“打印任务”窗口,然后点击“
FPGA的Quartus ModelSim的安装介绍和使用等基本操作资料免费下载
本文档的主要内容详细介绍的是FPGA的Quartus和ModelSim等安装介绍和使用等基本操作资料免费下载。
发表于 03-23 15:49
•24次下载
华为手机怎样安装鸿蒙系统 鸿蒙系统升级流程
升级的名单,如果自己使用的华为手机在第一批名单里,那么可以使用下面的方法来安装鸿蒙系统。 1.打开“设置”应用 2.在系统里点进“系统更新” 3.点击右上角,进入“更新设置” 4.打开“WLAN环境自动下载”
华为官网鸿蒙系统下载安装 华为鸿蒙系统下载地址
华为鸿蒙2.0系统已经上线一段时间了,华为官网鸿蒙系统如何下载安装?华为鸿蒙系统下载地址在哪?接下来跟小编一起来看看
在鸿蒙上使用Python进行物联网编程
炫耀!然而,这却是非常重要的一步:在鸿蒙上用使用 Python 进行物联网编程是可行的!!! 既然可行,加上 Python 语言天生的优势(易于掌握,开发效率高),那么真的值得持续打造,将鸿蒙上的 Python 进行到底。 所以,今天的主题就是利用 GPIO 搭配 I2C
鸿蒙上实现直接安装hap
的开源应用陆续添加进去。 那为了实现这个小目标,首先要解决的问题肯定是如何在设备端实现直接安装 hap,完全脱离电脑 hdc 命令。 效果如下: 关于这个问题,现阶段网上可能搜不到什么特别有价值的信息,那只能自己探索了,经过几天
鸿蒙上安装按钮实现下载、暂停、取消、显示等操作
评论