android后台下载 进度实时更新

android后台下载源码

最近在公司做项目时遇到一些下载的问题,所以写了个小例子来和大家分享,忙了一天啊好累 哈哈。

改程序主要使用service下载,用Binder实现service和activity交互,在service中发通知改变通知栏任务状态,通过发广播通知主界面任务更新,广播中携带任务(Task实现Parcelable)。该程序基本完成了客户端任务更新等内容,只要在加上服务器返回数据监听就完成了基本的android下载



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您提供一些关于在 Android Studio 中使用 ProgressBar 实现下载进度展示功能的建议。 首先,在布局文件中添加一个 ProgressBar 组件。例如,您可以在您的布局文件中添加如下代码: ``` <ProgressBar android:id="@+id/progressBar" android:layout_width="match_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal" android:progress="0" android:max="100"/> ``` 在这个代码中,我们定义了一个 id 为 progressBar 的 ProgressBar 组件,并设置其宽度为 match_parent,高度为 wrap_content。我们还设置了该组件的样式为 progressBarStyleHorizontal,并将其初始进度设置为 0,最大进度设置为 100。 接下来,在您的 Java 代码中,您需要实现一个异步任务来下载文件并更新 ProgressBar 的进度。例如,您可以编写如下代码: ``` private class DownloadTask extends AsyncTask<String, Integer, String> { // 在执行异步任务之前调用 @Override protected void onPreExecute() { super.onPreExecute(); // 在这里设置 ProgressBar 的初始状态 progressBar.setProgress(0); } // 在后台执行异步任务 @Override protected String doInBackground(String... urls) { int count; try { URL url = new URL(urls[0]); URLConnection connection = url.openConnection(); connection.connect(); int lengthOfFile = connection.getContentLength(); InputStream input = new BufferedInputStream(url.openStream()); OutputStream output = new FileOutputStream("/sdcard/file_name.extension"); byte data[] = new byte[1024]; long total = 0; while ((count = input.read(data)) != -1) { total += count; publishProgress((int) (total * 100 / lengthOfFile)); output.write(data, 0, count); } output.flush(); output.close(); input.close(); } catch (Exception e) { Log.e("Error: ", e.getMessage()); } return null; } // 在后台执行异步任务时更新进度 @Override protected void onProgressUpdate(Integer... progress) { super.onProgressUpdate(progress); progressBar.setProgress(progress[0]); } // 在异步任务执行完成后调用 @Override protected void onPostExecute(String result) { // 在这里设置 ProgressBar 的最终状态 progressBar.setProgress(100); } } ``` 在这个代码中,我们定义了一个名为 DownloadTask 的异步任务,并实现了它的 doInBackground() 方法来执行文件下载操作。我们还实现了 onProgressUpdate() 方法来更新 ProgressBar 的进度,并在任务执行完成后调用 onPostExecute() 方法来设置 ProgressBar 的最终状态。 最后,您可以在您的 Activity 中启动 DownloadTask 来执行文件下载操作并更新 ProgressBar 的进度。例如,您可以编写如下代码: ``` DownloadTask downloadTask = new DownloadTask(); downloadTask.execute("http://www.example.com/file_name.extension"); ``` 在这个代码中,我们实例化了一个 DownloadTask 对象,并调用其 execute() 方法来启动异步任务。您可以将 http://www.example.com/file_name.extension 替换为您要下载的文件的 URL。 希望这些建议可以帮助您在 Android Studio 中使用 ProgressBar 实现下载进度展示功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值