首先在Activity中声明Intent对象,启动Service:

    //生成Intent对象
    Intent intent = new Intent();
    //将文件名对象存入到intent对象当中
    intent.putExtra("name", filename);
    intent.setClass(this, DownloadService.class);
    //启动Service
    startService(intent);

  DownloadService定义如下:

    public class DownloadService extends Service{

      @Override
      public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
      }

      //每次用户点击ListActivity当中的一个条目时,就会调用该方法
      @Override
      public int onStartCommand(Intent intent, int flags, int startId) {
        //从intent对象中将文件名取出
        String name = intent.getExtra("name");
             //生成一个下载线程,并将文件名对象作为参数传递到线程对象当中
        DownloadThread downloadThread = new DownloadThread(name);
        //启动新线程
        Thread thread = new Thread(downloadThread);
        thread.start();
        return super.onStartCommand(intent, flags, startId);
      }

      class DownloadThread implements Runnable{
        private String name = null;
        public DownloadThread(String name){
          this.name = name;
        }
        @Override
        public void run() {
          //下载地址是http://192.168.1.105:8080/mp3/forever.mp3
          //根据MP3文件的名字生成下载地址
          String fileUrl = "http://192.168.1.105:8080/mp3/" + name;
                            //生成下载文件所用的对象
          HttpDownloader httpDownloader = new HttpDownloader();   //此类的定义见上一节文件下载和存入SD卡
          //将文件下载并存储到SDCard当中
          int fileresult = httpDownloader.downFile(fileUrl, "/mp3", name);
                            String resultMessage = null;
          if(fileresult == -1){
            resultMessage = "下载失败";
          }
          else if(fileresult == 0){
            resultMessage = "文件已经存在,不需要重复下载";
          }
          else if(fileresult == 1){
            resultMessage = "文件下载成功";
          }
          //使用Notifications提示客户下载结果
          System.out.println(resultMessage);
        }
      }
    }

转载于:https://www.cnblogs.com/zhanglei93/p/4714112.html

Service实现文件下载相关推荐

  1. PDF下载与批量下载处理

    需求:下载合同,且支持批量下载 思路: 1.点击下载时,发送请求,携带合同的id 2.根据id,获取合同对象,根据对象获取合同文件在服务器上的路径 3.通过IO进行下载 1.单个下载 发送请求,传一个 ...

  2. 记一次练手的项目经历-事件管理系统

    此项目既为练手,也为简化个人工作.回过头来看,其实前端耗费的时间比较久,其实可以用elementadmin这个成熟框架的. 项目主要技术点: 动态数据源,数据库动态添加,添加后动态切换查询数据 自定义 ...

  3. Android基础 : Android Service[转]

    2019独角兽企业重金招聘Python工程师标准>>> 很多情况下,一些与用户很少需要产生交互的应用程序,我们一般让它们在后台运行就行了,而且在它们运行期间我们仍然能运行其他的应用. ...

  4. 初识Service Worker

    当下PWA比较火,而Service Worker是实现PWA的一项关键技术,今天我们一起了解下关于Service Worker的一些基础知识和适用场景. 什么是Server Worker 我们先来看一 ...

  5. 电脑总是死机 报Service Control M Hid input service 服务因下列错误而停止

    找个好的电脑在c:\windows\system32中找到hidserv.dll文件,或者在网上找到此文件下载并放到该系统目录.在"我的电脑"同时点击鼠标右键,选择"管理 ...

  6. 使用IntentService给自己的Android应用写一个文件下载器。

    接着上一篇的http://www.cnblogs.com/zhengxt/p/3657833.html,当我们想给自己的APP写一个文件下载器时,可以用重写IntentService来实现. 使用In ...

  7. 用Jsp来实现文件下载功能的几种方式

    用Jsp来实现文件下载功能的几种方式 1.最直接最简单的,方式是把文件地址直接放到html页面的一个链接中.这样做的缺点是把文件在服务器上的路径暴露了,并且还无法对文件下载进行其它的控制(如权限).这 ...

  8. java 防止文件下载_Spring,Java:流式文件下载以避免内存不足错误

    我正在开发一个Spring MVC应用程序,用户可以在其中下载文件.用户可以点击触发下载机制的附件.Spring,Java:流式文件下载以避免内存不足错误 昨天,当该多个下载和两个具有约2 GB的文件 ...

  9. SpringMVC之文件上传和文件下载

    1. 文件上传 在web开发中一般会有文件上传的操作 一般JavaWeb开发中文件上传使用的 Apache组织的Commons FileUpload组件 SpringMVC中使用  Multipart ...

最新文章

  1. NOIP2017 列队
  2. 解决Fiddler不能监听Java HttpURLConnection请求的方法
  3. WPF入门知识(学习)
  4. Js计算时间差(天、小时、分钟、秒)
  5. 关注,粉丝关系的数据库设计
  6. 如何在 ASP.Net Core 使用 分布式缓存
  7. 010-python基础-数据类型-字符串操作
  8. 国科大prml15-基于浅层模型的计算机视觉--以人脸识别为例
  9. Win7休眠后唤醒出现黑屏的解决办法
  10. teamviewer 可用设备上限_2020:抚州办公楼采暖设备种类齐全
  11. STM32的Flash地址是0x08000000,从0x00000000不可以?
  12. 那些短,却叫人很心疼的句子(转)
  13. IOS 代码修改故事版中的自动布局参数
  14. steam审查元素免费得到几十款游戏教程
  15. Linux下的Chm文件阅读器
  16. 计算机进制算法在线,二进制转十进制和十六进制在线计算器
  17. 百度地图BMap API的应用实例
  18. “富春”端午狂揽过亿票房 评论褒贬两级分化
  19. 中日电脑相关词汇(超详版)
  20. 研二小硕的艰难实习路

热门文章

  1. myeclipse9安装SVN插件
  2. 让windows cmd也用上linux命令
  3. VideoCLIP-FacebookCMU开源视频文本理解的对比学习预训练,性能SOTA!适用于零样本学习!...
  4. VALSE 2020 线上大会简明日程发布(7月31日-8月5日)
  5. 用CNN做NLP文本分类竞赛
  6. MIT黑科技:无需视觉输入,立体声音频+摄像机元数据即可实现移动车辆定位
  7. 零基础直接学Python入门IT合适吗?
  8. 3D游戏建模到底需要学习哪些美术基础?新手学习3D建模?
  9. matlab+awgn和wgn,噪聲強度(噪聲功率) 噪聲方差到底有什么關系? matlab中的awgn函數...
  10. 3D重建 | 近5年前沿方法引用量TOP10工作汇总