2016-09-28 4 views
0

Ich verwendete DownloadManager, um eine Datei vom Server herunterzuladen, erwarte ich, wenn das Netzwerk nicht mit dem Internet verbunden ist, erhalte ich STATUS_PAUSED in BroadcastReceiver. Aber es ruft nicht onReceive().STATUS_PAUSED ruft onReceive() in DownloadManager nicht

downloadReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     // ... 
    } 
} 

registerReceiver(downloadReceiver, 
    new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); 

Antwort

0

Sie sind Filterung für die ACTION_DOWNLOAD_COMPLETE Aktion, Ihr Empfänger keine anderen Sendungen empfangen.

Darüber hinaus ist STATUS_PAUSED keine Sendung.

Es ist der Status eines bestimmten Downloads von der DownloadManager verwaltet, die Sie abfragen können.

Zum Beispiel:

DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); 
DownloadManager.Query query = new DownloadManager.Query(); 

query.setFilterById(idsToQuery); 
query.setFilterByStatus(DownloadManager.STATUS_PAUSED); 

Cursor cursor = dm.query(query); 

if (cursor.moveToFirst()) { 
    // do whatever you would like with the result 
} 
0

Soweit Download Manager Klasse betroffen ist, spielt es keine Broadcast jeden Status in Bezug auf den Zustand des Herunterladen von Inhalten. Nur zwei Zustände werden ausgestrahlt

  1. ACTION_DOWNLOAD_COMPLETE

  2. ACTION_NOTIFICATION_CLICKED

Verwandte Themen