我有以下问题:每当我下载一个带有DownloadManager的文件时,它会被下载两次(以“filename.extension”和“filename-1.extension”的形式保存).这是我的代码:
public void download() { Request request = new Request(Uri.parse(_wrapper.getURL())); request.setTitle(getFileName(_wrapper.getURL())); request.setVisibleInDownloadsUi(false); request.setDestinationInExternalFilesDir(_context,null,"/" + getFileName(_wrapper.getURL())); _downloadID = _downloadManager.enqueue(request); } public broadcastReceiver getDownloadFinishedbroadcastReceiver() { broadcastReceiver receiver = new broadcastReceiver() { @Override public void onReceive(Context pContext,Intent pIntent) { String action = pIntent.getAction(); if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) { Query query = new Query(); query.setFilterById(_downloadID); Cursor cursor = _downloadManager.query(query); if (cursor.movetoFirst()) { File file = new File(ScruloidConstants.APPLICATION_DIRECTORY); int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)); if (status == DownloadManager.STATUS_SUCCESSFUL) { String path = cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME)); _wrapper.setFilePath(path); _wrapper.setLastDownloaded(new Date()); if (_listener != null) { _listener.onDownloadProjectTaskFinished(new TaskResult<ProjectWrapper>(_wrapper)); } } else if (status == DownloadManager.STATUS_Failed) { int reason = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_REASON)); DownloadFailedException ex = new DownloadFailedException(reason); if (_listener != null) { _listener.onDownloadProjectTaskFinished(new TaskResult<ProjectWrapper>(ex)); } } } } } }; return receiver; }
ProjectWrapper _wrapper只是一个保存数据的简单类,没有逻辑. _listener只在回调方法上显示一个Toast小消息.我调试了我的应用程序以使shure下载()方法仅被调用一次.我希望你能帮我找到错误.
解决方法
遗憾的是,DownloadManager存在问题,无法在所有设备上正常运行.您的问题在此报告:
https://code.google.com/p/android/issues/detail?id=18462
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。