2016-09-28 4 views
0

Я использовал DownloadManager, чтобы загрузить файл с сервера, я ожидаю, когда сеть не подключена к Интернету. Я получаю STATUS_PAUSED в BroadcastReceiver. Но это не называется onReceive().STATUS_PAUSED не будет вызывать onReceive() в DownloadManager

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

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

ответ

0

Вы фильтрации для ACTION_DOWNLOAD_COMPLETE действия, ваш приемник не будет получать какие-либо другие передачи.

Кроме того, STATUS_PAUSED не является трансляцией.

Это статус конкретной загрузки, управляемой DownloadManager, которую вы можете запросить.

Например:

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

Насколько обеспокоен Download Manager класс, он не Broadcast никакого статуса относительно состояния загрузки контента. Только два статусы транслируются

  1. ACTION_DOWNLOAD_COMPLETE

  2. ACTION_NOTIFICATION_CLICKED