Android清除下载管理器历史记录而不删除文件

时间:2017-11-21 16:14:43

标签: android download-manager

我使用下载管理器下载文件并进行安装。

我很好奇是否有办法从下载历史记录中删除它而不实际从磁盘中删除文件?

据我所知,没有回调来判断用户是否安装了该文件,因此我想将其保留在磁盘上,但仅将其从下载历史记录中删除。

这是我的下载代码:

//创建下载管理器         final DownloadManager.Request request = new DownloadManager.Request(Uri.parse(appURL));

    // Save to here
    request.setDestinationUri(this.apkUri);

    // Retrieve system download service
    final DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);

    // Queue request
    manager.enqueue(request);

    // Will fire off and perform installation when download completes
    BroadcastReceiver onComplete = new BroadcastReceiver()
    {
        @Override
        public void onReceive(Context ctxt, Intent intent)
        {
            performInstall();
            ctxt.unregisterReceiver(this);
            //finish();
        }
    };

    context.registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));

另外一件我很好奇的事情是在我的广播接收器中是否必须完成?我是从一个帮助器类调用它,所以我出于某种原因无法访问它内部的finish函数。

1 个答案:

答案 0 :(得分:0)

排队前:

  • 添加后缀" .download"下载本地路径

OnReceive回调:

  • 从DM下载专栏(src)获取本地uri
  • 删除" .download"后缀来自Uri(dst)
  • 重命名" src"到" dst"
  • 从下载管理器中删除ID

结果:文件仍在磁盘上并且DM已清除