Android DownloadManager

import android.app.DownloadManager;
import android.net.Uri;

import java.io.File;
import java.util.*;

public class DownloadActivity extends Activity {

DownloadCompleteReceiver completeReceiver;

onCreate:
        completeReceiver = new DownloadCompleteReceiver();
        /** register download success broadcast **/
        registerReceiver(completeReceiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));

OnClick:
                //创建保存文件目录
                String path = Environment.getExternalStorageDirectory().getPath().concat("/com.buzz.exhibition/image/");
                File folder = new File(path);
                if (!folder.exists() || !folder.isDirectory()) {
                    folder.mkdirs();
                }

                DownloadManager manager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
                List<String> fileNameList = new ArrayList<String>();
                fileNameList.add("1.png");
                fileNameList.add("2.png");
                fileNameList.add("3.png");

                for (String fileName : fileNameList) {
                    String fileUrl = String.format("http://192.168.0.106:8080/exhibition/image/%s", fileName);
                    Log.i(TAG, fileUrl);
                    Log.i(TAG, fileName);
                    //创建下载请求
                    DownloadManager.Request down = new DownloadManager.Request(Uri.parse(fileUrl));
                    //设置允许使用的网络类型,这里是移动网络和wifi都可以
                    down.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
                    //后台下载
                    down.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE);
                    //显示下载界面
                    down.setVisibleInDownloadsUi(true);
                    //设置下载后文件存放的位置
                    down.setDestinationInExternalPublicDir("/com.buzz.exhibition/image/", fileName);
                    //将下载请求放入队列
                    manager.enqueue(down);
                }

 @Override
    protected void onDestroy() {
        super.onDestroy();
        if (completeReceiver != null) unregisterReceiver(completeReceiver);
    }

@Override
    protected void onResume() {
        registerReceiver(completeReceiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
        super.onResume();
    }

    //接受下载完成后的intent
    class DownloadCompleteReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) {
                long downId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
                Toast.makeText(context, intent.getAction() + "id : " + downId, Toast.LENGTH_SHORT).show();
            }
        }
    }

}

Ref:Android 演示 DownloadManager—Android 下载 apk 包并安装

Ref:Android系统下载管理DownloadManager功能介绍及使用示例

时间: 2024-10-28 20:30:04

Android DownloadManager的相关文章

Android DownloadManager 的使用

分类: android 技巧2013-05-28 10:32 3278人阅读 评论(1) 收藏 举报 目录(?)[+] 从Android 2.3(API level 9)开始Android用系统服务(Service)的方式提供了Download Manager来优化处理长时间的下载操作.Download Manager处理HTTP 连接并监控连接中的状态变化以及系统重启来确保每一个下载任务顺利完成. 在大多数涉及到下载的情况中使用Download Manager都是不错的选择,特别是当用户切换不

Android DownloadManager下载并自动弹出安装

1.版本2.3以上 2. <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.DOWNLOAD_WITH

android webview downloadManager文件下载管理

一.downloadmanager类说明: 从Android 2.3开始新增了一个下载管理类,在SDK的文档中我们查找android.app.DownloadManager可以看到.下载管理类可以长期处理多个HTTP下载任务,客户端只需要给出请求的Uri和存放目标文件的位置即可,下载管理使用了一个AIDL服务器所以可以放心的在后台执行,同时实例化的方法需要使用getSystemService(Context.DOWNLOAD_SERVICE) ,Android123再次提醒使用API Level

Android中的文件下载——DownLoadManager

一.问题概述 在android开发中,经常会使用到文件下载的功能,比如app版本更新等.在api level 9之后,android系统为我们提供了DownLoadManager类,这是android提供的系统服务,我们通过这个服务完成文件下载.整个下载过程全部交给系统负责,不需要我们过多的处理. 通过API文档,可以看出DownLoadManager包含两个内部类: DownLoadManager.Query:主要用于查询下载信息. DownLoadManager.Request:主要用于发起

Android 下载模块分析(DownloadManager和DownloadProvider)

Android下载模块主要有2个部分组成:DownloadManager和DownloadProvider:其中DownloadManager提供接口供调用,具体的实现是 DownloadProvider,包括相关数据信息的保存及文件下载. DownloadManager是系统开放给第三方应用使用的类,包含两个静态内部类DownloadManager.Query和DownloadManager.Request. DownloadManager.Request用来请求一个下载 DownloadMa

Android系统下载管理DownloadManager功能介绍及使用示例

http://www.trinea.cn/android/android-downloadmanager/ 本文主要结合源码介绍Android系统下载管理DownloadManager的强大功能及使用.这是许久来准备写的一系列博客,这篇主要介绍DownloadManager的功能和示例,后面还有两篇会介绍下载管理的底层设计(DownloadProvider.DownloadManager.DownloadManagerUI).下载管理如何进行功能增强和bug修改. 示例APK可从这些地址下载:G

Android 使用 DownloadManager 管理系统下载任务的方法

从Android 2.3(API level 9)开始Android用系统服务(Service)的方式提供了Download Manager来优化处理长时间的下载操作.Download Manager处理HTTP连接并监控连接中的状态变化以及系统重启来确保每一个下载任务顺利完成. 在大多数涉及到下载的情况中使用Download Manager都是不错的选择,特别是当用户切换不同的应用以后下载需要在后台继续进行,以及当下载任务顺利完成非常重要的情况(DownloadManager对于断点续传功能支

【转】 Pro Android学习笔记(七五):HTTP服务(9):DownloadManager

目录(?)[-] 小例子 保存在哪里下载文件信息设置和读取 查看下载状态和取消下载 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/ 应用有时需要从web中下载一个大文件,并保存在本地,这个操作过程是标准的,因此在Android2.3引入了DownloadManager类.相关的学习也可以参考Android学习笔记(四六):互联网通信-文件下载. 小例子 先看一个小例子,如下图所示.lay

Android下载管理DownloadManager功能扩展和bug修改

http://www.trinea.cn/android/android-downloadmanager-pro/ 本文主要介绍如何修改Android系统下载管理,以支持更多的功能及部分bug修改和如何编译生效.目前内容包括暂停下载.继续下载.通知设置NotiExtra和NotiClass.wifi切换到3g自动暂停.Bug修改. PS: 很多童鞋不是自己做rom,所以就算修改了系统源码编译出来的包在其他系统上也不通用这里推荐[email protected](并不是我的开源项目,我的项目为[e