Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – DownloadManager双下载大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下问题:每当我下载一个带有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

大佬总结

以上是大佬教程为你收集整理的android – DownloadManager双下载全部内容,希望文章能够帮你解决android – DownloadManager双下载所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。