使用查詢()打聽下載。當你調用enqueue()時,返回值就是下載的ID。您可以通過狀態以及查詢:
Cursor c = downloadManager.query(new DownloadManager.Query()
.setFilterByStatus(DownloadManager.STATUS_PAUSED
| DownloadManager.STATUS_PENDING
| DownloadManager.STATUS_RUNNING));
To be notified when a download is finished, register a BroadcastReceiver for ACTION_DOWNLOAD_COMPLETE:
BroadcastReceiver onComplete = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// do something
}
};
registerReceiver(onComplete, new IntentFilter(
DownloadManager.ACTION_DOWNLOAD_COMPLETE));
請注意,您也應該監聽ACTION_NOTIFICATION_CLICKED廣播知道當用戶點擊該通知正在運行的下載。
更好的方法是顯示進度條和下載文件。 爲了達到此目的,您可以獲取文件大小,然後使用公式來計算下載文件的百分比。 請點擊此鏈接:http://www.androidhive.info/2012/04/android-downloading-file-by-showing-progress-bar/ 我希望你能爲你的問題找到解決方案 – BhanuSingh
我不需要顯示進度條,,這應該是一個後臺下載,,但耗時我只是使用下載管理器insted製作一項服務,我需要的是檢查文件是否正在下載,所以用戶不能點擊下載,而文件正在下載或下載完成 –
好的,在這種情況下,您可以選擇邏輯如何計算文件下載的完成情況,請讓我爲您做。 – BhanuSingh