
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双下载所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)