android DownloadManager使用过程中遇到的问题

DownloadManager是Android系统提供给第3方应用的下载管理功能。

我用它去下载一个apk.文件

DownloadManager.Request req = new DownloadManager.Request(Uri.parse(“apk url”));
DownloadManager dm = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
long downloadId = dm.enqueue(req);

可以看到我们构建了一个DownloadManager.Request对象,并获取到一个唯一的downloadId。downloadId用于查询这个文件的下载状态:

DownloadManager.Query query = new DownloadManager.Query().setFilterById(downloadId);
Cursor c = dm.query(query);if (c != null && c.moveToFirst()) { 
   int status = c.getInt(c.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS));  
      switch (status) {     
     case DownloadManager.STATUS_PENDING:  
      break;      
    case DownloadManager.STATUS_PAUSED:     
     break; 
   case DownloadManager.STATUS_RUNNING:         
      break;       
    case DownloadManager.STATUS_SUCCESSFUL:       
        break;   
     case DownloadManager.STATUS_FAILED:             
      break;  
    }  
    if (c != null) {      
       c.close();    
   }
 }

从这里之前一切都很美好! 真的没毛病。DownloadManager好强大啊,有没有。 可问题是DownloadManager的下载是系统处理的。也就是说调用了以后,下载没下载完都是他处理的。所以你只能通过唯一的downloadId 去获取你这个文件的下载状态。

那如果我现在退出了,我还是想知道之前下载那个文件的下载状态怎么办!! 我没保留downloadId 啊。 坑,我真不知道你这么重要。噗。。

你就不能根据apkurl去判断下载状态啊,唯一的apkurl就是唯一的下载状态。 亲!!

你可能感兴趣的:(android DownloadManager使用过程中遇到的问题)