DownloadManager的简单使用

1.DownloadManager的基本设置 

先提供截图



 注释很详细,直接上代码

private Button btn_load;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_load = (Button)findViewById(R.id.btn_load);
        btn_load.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getDownLoad();
            }
        });
    }
    public void getDownLoad(){
        String uri="http://113.207.2.32/apk.r1.market.hiapk.com/data/upload/apkres/2016/3_20/12/com.h2y.android.shop.activity_122404.apk?wsiphost=local,http://apk.hiapk.com/search?key=%E9%85%92%E8%BF%90%E8%BE%BE&pid=0";
        String savePath="/dkk/download/";
        String appName = "jiuyunda.apk";
        final DownloadManager manager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);

        DownloadManager.Request request = new DownloadManager.Request(Uri.parse(uri));
        //设置允许使用的网络类型
        request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);

        //下载时,通知栏显示途中
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE);
        request.setTitle("正在下载。。。");
        request.setDescription("别急,快好了");

        //显示下载界面
        request.setVisibleInDownloadsUi(true);
        //设置下载文件的存放位置
        request.setDestinationInExternalFilesDir(this, savePath, appName);
        //返回的Id是当前下载任务分配的唯一ID,可以根据ID查询到当前下载状态或进行一些操作
        final long id = manager.enqueue(request);
        //注册动态的广播,监听下载完成的状态
        IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
        BroadcastReceiver receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                //接收到下载完成的ID
                long reference = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
                if (id == reference) {
                    Toast.makeText(getApplication(),"下载完成",Toast.LENGTH_SHORT).show();
                }
            }
        };
        registerReceiver(receiver, filter);//注册
    }


2.权限设置

<!--网络连接权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--往sdcard中写入数据的权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <!--在sdcard中创建/删除文件的权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值