2016-09-28 4 views
0

DownloadManager을 사용하여 서버에서 파일을 다운로드했습니다. 네트워크가 인터넷에 연결되어 있지 않은 경우 STATUS_PAUSEDBroadcastReceiver으로 수신합니다. 하지만 onReceive()으로 전화하지 않습니다.STATUS_PAUSED는 DownloadManager의 onReceive()를 호출하지 않습니다

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

을 ACTION_NOTIFICATION_CLICKED 방송된다