Я использую Системную службу Android DownloadManger для загрузки некоторых файлов следующим образом
dwnId = mgr.enqueue(new DownloadManager.Request(serveruri)
.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI |
DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false)
.setTitle(getAlbumName())
.setDescription(getTrackName())
.setDestinationUri(deviceUri)
.setShowRunningNotification(true));
, где mgr
- экземпляр диспетчера загрузки, dwnId
- возвращенный уникальный идентификатор.Я также регистрируюсь для ACTION_DOWNLOAD_COMPLETE
registerReceiver(onDownloadComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
и в методе onDownloadComplete BroadcastReceiver onReceive () я получаю идентификатор загрузки, например
Long dwnId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
После этого я запрашиваю Download Manager для загрузкистатус
Cursor c = downloadManager.query(new DownloadManager.Query().setFilterById(dwnId)); c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
для констант DownloadManager.STATUS_ *.
Проблема в том, что я получаю один и тот же downId дважды (значит, метод onReceive вызывается дважды), один раз со статусом DownloadManager.STATUS_SUCCESSFUL и один раз со статусом DownloadManager.STATUS_FAILED для того же dwnId.Я отправляю запрос на загрузку около 10 файлов одновременно, но в диспетчере загрузки устройств он показывает количество загрузок как 12 или 13 в левом верхнем углу панели уведомлений.Я думаю, что менеджер загрузок имеет некоторые проблемы при загрузке файлов и возобновил или автоматически перезапустил, чтобы загрузить тот же файл снова.Вот почему существует разница между количеством файлов, которые я запросил для загрузки, и фактическим количеством в очереди на загрузку.Из-за этого только я получаю одно и то же действие DownloadId дважды.Если это правда, как это ограничить.Я ошибаюсь, что может быть причиной разницы в подсчете между тем, что я запросил для фактической загрузки?Почему приемник вещания получает один и тот же идентификатор загрузки дважды.Кто-нибудь, пожалуйста, дайте мне знать?
Заранее спасибо ...