话不多说先看效果图

思路:
1.AlertDialog弹框提示
2.ProgressDialog进行下载进度提示
3.AsyncTask进行网络读取数据
代码:

先看MainActivity

  1. “` /* * 测试工具类的下载文件工具,本demo是直接运行 * */ public class
    MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);         //这是你要下载的文件urlString url="http://gdown.baidu.com/data/wisegame/f98d235e39e29031/baiduxinwen.apk";//调用工具类方法Utils.downFile(MainActivity.this,url,"xxx.apk");
    }
    

    } “`

再看utils工具类

  1. /* 作者:桃先森 * 时间:2017/5/25 * 类用途:自定义封装工具类,供大家使用 *
    思路:AlertDialog弹框提示,ProgressDialog进行下载进度提示 *

    * 静态方法介绍 *
    参数一:上下文 * 参数二:下载的文件url * 参数三:保存在本地的名字(带文件类型 例如 aaa.apk) */

    public class Utils {

    public static void downFile(final Context context, final String url, final String filename) {final AlertDialog.Builder builder = new AlertDialog.Builder(context);builder.setTitle("提醒");builder.setMessage("有新版本,请更新");builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {ProgressDialog progressDialog;@Overridepublic void onClick(DialogInterface dialog, int which) {progressDialog = new ProgressDialog(context);progressDialog.setMessage("正在更新,请稍等");progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);progressDialog.setIndeterminate(true);progressDialog.show();startAsyntask(context,progressDialog,url,filename);}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {builder.create().dismiss();}});builder.show();}//启动Asyntask的方法
    private static void startAsyntask(final Context context, final ProgressDialog progressDialog, String url, final String filename) {new AsyncTask<String, Integer, String>() {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected void onProgressUpdate(Integer... values) {super.onProgressUpdate(values);progressDialog.setIndeterminate(false);progressDialog.setMax(100);progressDialog.setProgress(values[0]);if (values[0] == 100) {Toast.makeText(context, "下载完成", Toast.LENGTH_SHORT).show();progressDialog.dismiss();}}@Overrideprotected void onPostExecute(String string) {super.onPostExecute(string);}@Overrideprotected String doInBackground(String... params) {String param = params[0];try {URL url = new URL(param);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.connect();if (connection.getResponseCode() != 200) {return "链接错误";}//获得内容长度int contentLength = connection.getContentLength();InputStream inputStream = connection.getInputStream();FileOutputStream fileOutputStream = new FileOutputStream("/sdcard/"+filename);byte[] buffer = new byte[1024];int len = 0;int total = 0;while ((len = inputStream.read(buffer)) != -1) {if (isCancelled()) {inputStream.close();} else {total += len;publishProgress((total * 100 / contentLength));fileOutputStream.write(buffer, 0, len);}}return null;} catch (FileNotFoundException e) {e.printStackTrace();} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return null;}}.execute(url);}
    

    }

小小工具类,大家可直接使用,如有帮助到您,那是我的荣幸!你的支持就是我的动力,以后会不定式更新能帮助大家的Demo!期待下次在见,我是桃先森我为狸菇凉代言–>_<

下载文件进度显示--小小Demo——桃先森相关推荐

  1. Android 下载文件并显示进度条

    2019独角兽企业重金招聘Python工程师标准>>> OK,上一篇文章讲了上传文件到服务端,并显示进度条 那么这边文章主要讲下载文件并显示进度条. 由于简单,所以只上传代码.还是需 ...

  2. python实现http下载文件-Python HTTP下载文件并显示下载进度条功能的实现

    下面的Python脚本中利用request下载文件并写入到文件系统,利用progressbar模块显示下载进度条. 其中利用request模块下载文件可以直接下载,不需要使用open方法,例如: im ...

  3. android下载通知栏,Android开发中实现下载文件通知栏显示进度条

    android开发中实现下载文件通知栏显示进度条. 1.使用asynctask异步任务实现,调用publishprogress()方法刷新进度来实现(已优化) public class myasync ...

  4. 实现在 .net 中使用 HttpClient 下载文件时显示进度

    在 .net framework 中,要实现下载文件并显示进度的话,最简单的做法是使用 WebClient 类.订阅 DownloadProgressChanged 事件就行了. 但是很可惜,WebC ...

  5. ajax实现下载文件进度条及方法详解

    javascript使用ajax下载文件进度条实现 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml&qu ...

  6. 使用libcurl开源库和Duilib做的下载文件并显示进度条的小工具

    转载:http://blog.csdn.net/mfcing/article/details/43603525 转载:http://blog.csdn.net/infoworld/article/de ...

  7. Android中如何下载文件并显示下载进度

    原文地址:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1125/2057.html 这里主要讨论三种方式:AsyncTask.Serv ...

  8. 利用curl下载文件(进度条显示) 代码片段

    在项目中需要用到程序更新的功能,同事介绍说是curl中的开发库很不错,于是下载这个包测试了一下,确实不错.准备正式用到项目中,以下一个例子用于从互联网上抓取一个文件下载到本地,并加上进度条显示,做得挺 ...

  9. android后台文件下载库,android中如何下载文件并显示下载进度

    最近开发中遇到需要下载文件的问题,对于一般的下载来说不用考虑断点续传,不用考虑多个线程,比如下载一个apk之类的,这篇文章讨论的就是这种情形. 这里主要讨论三种方式:AsyncTask.Service ...

  10. C# Winform下载文件并显示进度条

    private void btnDown_Click(object sender, EventArgs e) { DownloadFile("http://localhost:1928/We ...

最新文章

  1. 在交换机上配置Telnt
  2. 华为OJ 名字美丽度
  3. DIB位图(Bitmap)的读取和保存
  4. 一文读懂云上用户如何灵活应用定制化网络服务
  5. (五)Docker查看容器ip及指定固定IP
  6. 团队-科学技术器-模块测试过程
  7. 两雄争霸:解读MSU2019年度视频编码大赛
  8. 安装过mysql和p_MAC下安装与配置MySQL
  9. 使用微信JSSDK自定义微信分享标题、描述、和图标
  10. 桌面支持--WIN7任务栏上EXCEL的图标右键菜单上没有了最近打开的文档目录
  11. 「版本升级」MyEclipse CI 2018.12.0正式发布
  12. [导入]在windows下建立的自己cvsnt服务器
  13. 网页版QQ、MSN等等聊天工具web版大全
  14. 菜鸟学R语言(方差分析)
  15. sqlserver pivot 动态行转列且一行转多列的解决方案
  16. 盘古石杯电子取证比赛WP
  17. orcle plsql 列类型 BLOB与CLOB的互转,RAW
  18. 国产智多晶FPGA基于Verilog的设计开发流程
  19. android 7.1快捷方式App Shortcuts
  20. vue3.x +Cesium Cesium 鼠标交互,鼠标点击拾取对象等(五)

热门文章

  1. 营业执照、组织机构代码、税务登记号规则
  2. 营业执照统一社会信用代码Java正则表达式
  3. 常规恢复_不完全恢复_丢失控制文件
  4. Python将头像照片转换为漫画,采用GAN深度学习,无噪点
  5. 数据建模:个人信用分是如何计算出来的?
  6. Linux centos7 mysql 配置支持emoji表情包,笔记
  7. 在php中如何实现cookie即时生效,不用刷新就可以使用 1
  8. 使用ZYNQ实现单LUT内容的动态修改(一)PL端OOC设计流程
  9. 对接payjs的个人支付之微信扫码支付接口
  10. 图的应用:骑士周游问题