How to get download status?

I use DownloadManager to get the download status, but it still does not work, it never goes into the if(c.moveToFirst()) state, and I don’t know why. Can someone help me please?

 private final BroadcastReceiver myReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(Intent.ACTION_SCREEN_OFF.equals(action)) { DownloadManager downloadMgr = (DownloadManager)getSystemService(DOWNLOAD_SERVICE); DownloadManager.Query query = new DownloadManager.Query(); query.setFilterByStatus(DownloadManager.STATUS_FAILED|DownloadManager.STATUS_PENDING|DownloadManager.STATUS_RUNNING|DownloadManager.STATUS_SUCCESSFUL); Cursor c = downloadMgr.query(query); if(c==null) { // } else { if(c.moveToFirst()) { int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS); int status = c.getInt(columnIndex); if(status == DownloadManager.STATUS_RUNNING){ //do something } } } } } }; 
+6
source share
1 answer

Here are some links.

Sample code below:

 DownloadManager.Query query = null; Cursor c = null; DownloadManager downloadManager = null; downloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE); query = new DownloadManager.Query(); if(query!=null) { query.setFilterByStatus(DownloadManager.STATUS_FAILED|DownloadManager.STATUS_PAUSED|DownloadManager.STATUS_SUCCESSFUL| DownloadManager.STATUS_RUNNING|DownloadManager.STATUS_PENDING); } else { return; } c = downloadManager.query(query); if(c.moveToFirst()) { int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS)); switch(status) { case DownloadManager.STATUS_PAUSED: break; case DownloadManager.STATUS_PENDING: break; case DownloadManager.STATUS_RUNNING: break; case DownloadManager.STATUS_SUCCESSFUL: break; case DownloadManager.STATUS_FAILED: break; } } 
+7
source

Source: https://habr.com/ru/post/913780/


All Articles