• 1
  • 2
  • 3
  • 4

首页 / 行业

鸿蒙上安装按钮实现下载、暂停、取消、显示等操作

2022-01-04 14:32:00

鸿蒙上安装按钮实现下载、暂停、取消、显示等操作

今天给大家分享在鸿蒙上一个按钮实现下载、暂停、取消、显示下载进度操作。

先看效果,如下图:

开始

暂停

下载中

下载完成

取消下载

开始写代码

①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(){@OverridepublicvoidonClick(Componentcomponent){if(downloadId==0){newToastDialog(getContext()).setText("开始下载").show();downloadId=PRDownloader.download(url,path,name).build()//恢复下载.setOnStartOrResumeListener(newOnStartOrResumeListener(){@OverridepublicvoidonStartOrResume(){progressBar.setProgressHintText("正在下载");}})//暂停下载.setOnPauseListener(newOnPauseListener(){@OverridepublicvoidonPause(){progressBar.setProgressHintText("恢复下载");}})//取消下载.setOnCancelListener(newOnCancelListener(){@OverridepublicvoidonCancel(){progressBar.setProgressHintText("已取消下载");}})//下载进程 currentBytes当前下载字节,totalBytes文件总字节。.setOnProgressListener(newOnProgressListener(){@OverridepublicvoidonProgress(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(){@OverridepublicvoidonDownloadComplete(){progressBar.setProgressHintText("下载完成");status=PRDownloader.getStatus(downloadId);text.setText(status.name());}@OverridepublicvoidonError(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(){@OverridepublicvoidonLongClicked(Componentcomponent){newToastDialog(getContext()).setText("取消下载").show();PRDownloader.cancel(downloadId);downloadId=0;progressBar.setProgressValue(0);progressBar.setProgressHintText("开始下载");status=PRDownloader.getStatus(downloadId);text.setText(status.name());}});

原文标题:鸿蒙手机上一个按钮实现下载操作!

文章出处:【微信公众号:HarmonyOS技术社区】欢迎添加关注!文章转载请注明出处。

审核编辑:彭菁

显示取消下载暂停

  • 1
  • 2
  • 3
  • 4

最新内容

手机

相关内容

  • 1
  • 2
  • 3

猜你喜欢