首先需要一个线程。 new Thread(new Runnable() {           @Override           public void run() {               try {                   URL url = new URL(entity.getUrl());                   //打开连接                   URLConnection conn = url.openConnection();                   //打开输入流                   InputStream is = conn.getInputStream();                   //获得长度                   int contentLength = conn.getContentLength();                   //创建文件夹 MyDownLoad,在存储卡下                   String dirName = context.getExternalFilesDir(null).getPath() + "/MyDownLoad/";                   File file = new File(dirName);                   //不存在创建                   if (!file.exists()) {                       file.mkdir();                   }                   //下载后的文件名                   String fileName = dirName + entity.getTitle() +".mp3";                   File file1 = new File(fileName);                   if (file1.exists()) {                       file1.delete();                   }                   //创建字节流                   byte[] bs = new byte[1024];                   int len;                   OutputStream os = new FileOutputStream(fileName);                   //写数据                   while ((len = is.read(bs)) != -1) {                       os.write(bs, 0, len);                   }                   //完成后关闭流                   os.close();                   is.close();                   Log.e("run", "下载完成了~" + dirName );               } catch (Exception e) {                   e.printStackTrace();               }           }       }).start();

更多相关文章

  1. 浅析Android中的消息机制-解决:Only the original thread that cr
  2. Android之菜单总结
  3. Android异步消息机制之Handler
  4. Android的Handler机制详解3_Looper.looper()不会卡死主线程
  5. Android使用Retrofit进行网络请求
  6. [RK3399][Android7.1.1] WifiAp:开机默认打开wifi热点
  7. Android官方入门文档[1]创建一个Android项目
  8. android 创建桌面快捷方式 、插件
  9. AIR Native Extension的使用(Android)一 : 打包ane

随机推荐

  1. 小鼠肿瘤生物学数据库
  2. flex容器常用的四个属性
  3. CSS3中的box-sizing属性实例详解
  4. 由浅入深了解Nirvana NAC公链的两面性NA
  5. 助力网络基础器件革新:全新单芯片可编程BA
  6. 神助攻--Zynq:Tattile基于Zynq实现超高分
  7. “换药不换汤”:基于不同的Xilinx FPGA实
  8. 41款实用工具,数据获取、清洗、建模、可视
  9. 数字化采样仪的革新与发展:SP Devices推出
  10. springcloud 配置集成 Sentinel 限流器