美文网首页
android 系统下载 Download Manager(二)

android 系统下载 Download Manager(二)

作者: 柨柨 | 来源:发表于2016-07-03 18:57 被阅读640次

    上篇文章android 系统下载 Download Manager(一)DownloadManager.Request讲完Request的创建的常用方法。

    1.获取Download Manager对象

    DownloadManager downloadManager= (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
    

    2.将Request添加到downloadManager

    //加入下载队列后会给该任务返回一个long型的id,
    //通过该id可以取消任务,重启任务等等
    long mTaskId = downloadManager.enqueue(request);Log.i(TAG, "downloadAPK: mTaskId" + mTaskId);
    

    3.注册广播接收者,监听下载状态
    下载完成后,下载管理会发出DownloadManager.ACTION_DOWNLOAD_COMPLETE这个广播,并传递downloadId作为参数。通过接受广播我们可以打开对下载完成的内容进行操作

    //注册广播
    mContext.registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
    

    下载完成时,发送的广播。
    对应的Action为:ACTION_DOWNLOAD_COMPLETE
    Notification被点击时发送的广播。
    对应的Action为:ACTION_NOTIFICATION_CLICKED
    查看所有下载情况的广播。
    对应的Action为:ACTION_VIEW_DOWNLOADS

    //广播接受者,接收下载状态 
    private BroadcastReceiver receiver = new BroadcastReceiver() {    
        @Override   
        public void onReceive(Context context, Intent intent) { 
           checkDownloadStatus();//检查下载状态     
        }
    };
    
    /检查下载状态
     private void checkDownloadStatus() { 
    DownloadManager.Query query = new DownloadManager.Query(); 
    query.setFilterById(mTaskId);//筛选下载任务,传入任务ID,可变参数 
    Cursor c = downloadManager.query(query);
     if (c.moveToFirst()) {
       int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS)); 
          switch (status) {
             case DownloadManager.STATUS_PAUSED: 
                    MLog.i(">>>下载暂停");
             case DownloadManager.STATUS_PENDING:
                     MLog.i(">>>下载延迟");
             case DownloadManager.STATUS_RUNNING:
                     MLog.i(">>>正在下载");
                   break; 
            case DownloadManager.STATUS_SUCCESSFUL:
                   MLog.i(">>>下载完成"); 
                 break; 
          } 
       }
    }
    

    未完待续。。。

    相关文章

      网友评论

          本文标题:android 系统下载 Download Manager(二)

          本文链接:https://www.haomeiwen.com/subject/gpqcjttx.html