title: DownloadManager sends STATUS_SUCCESSFUL for failed download
body: <p>Okay, I'm downloading files (images). I want to send a message with local URI for the image when the download is completed. But 20% of time I'm getting this:</p>
  
  <pre><code>6-01 18:46:39.900: INFO/DownloadManager(412): Initiating request for download 605
  06-01 18:46:39.910: WARN/DownloadManager(412): Aborting request for download 605: Trying to resume a download that can't be resumed
  06-01 18:46:39.910: INFO/ololo(2826): Okay, I'll broadcast.
  06-01 18:46:39.990: WARN/ImageView(2826): Unable to open content: content://downloads/my_downloads/605
      java.io.FileNotFoundException: No filename found.
      at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:145)...
  06-01 18:46:39.990: INFO/System.out(2826): resolveUri failed on bad bitmap uri: content://downloads/my_downloads/605
  06-01 18:46:39.990: INFO/ololo(2826): content://downloads/my_downloads/605 was set for android.widget.ImageView@408a2cf0
  </code></pre>
  
  <p>Here is the code</p>
  
  <pre class="lang-java prettyprint-override"><code>Long downloadId = downloadIds.get(this);
  
  if(downloadId == intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1)) {
      DownloadManager.Query query = new DownloadManager.Query();
      query.setFilterById(downloadId);
      Cursor cursor = downloadManager.query(query);
  
      if(cursor.moveToFirst()) {
  
          switch (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS))) {
              case DownloadManager.STATUS_SUCCESSFUL : {
                  Log.i("ololo", "Okay, I'll broadcast.");
                  // Broadcasting
                  break;
              }
              case DownloadManager.STATUS_FAILED : {
                  Log.i("ololo", "Bad, I won't broadcast.");
                  int reason = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_REASON));
                  if(reason == DownloadManager.ERROR_CANNOT_RESUME || reason == DownloadManager.ERROR_UNKNOWN) {
                      // Rerun download
                  }
                  break;
              }
              default:
                  break;
          }
      }
  }
  </code></pre>