当前位置: 首页 > 知识库问答 >
问题:

Android在不删除文件的情况下清除下载管理器历史记录

陆阳曜
2023-03-14

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

我很好奇,是否有一种方法可以在不从磁盘上删除文件的情况下将其从下载历史记录中删除?

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

以下是我的下载代码:

//创建下载管理器最终下载管理器。请求=新建下载管理器。请求(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个答案

黄昊
2023-03-14

排队前:

  • 添加后缀“.download”以下载本地路径

接收回调:

  • 从DM下载列(src)获取本地uri
  • 从Uri(dst)中删除“.download”后缀
  • 将“src”重命名为“dst”
  • 下载管理器中删除ID

结果:文件仍在磁盘上,DM已清理

 类似资料:
  • 我正在建立一个应用程序,并使用MariaDB作为我的数据库。我有一张桌子“kick_votes”。其主键包含三个字段: null

  • 我正在尝试下载一个文件到目录,可以根据用户选择的任何目录变化。我将当前目录存储在一个file对象中,现在正在尝试下载该文件。文件下载,但它不下载指定的目录。那么,我可以做什么来获得所选目录中的文件。 传递给文件构造函数的名为url的字符串包含url。只是用它来检索文件名。 更新:我刚找到文件。它在手机里而不是sd卡里。它就在这个文件夹里,存储\仿真\00。不知道为什么?另外,我得到的绝对路径是St

  • 我正在爱奥尼亚4中创建一个注销页面,我想要的是清除路由器历史记录,以便“后退”按钮不起作用,另外,我想知道在导航到登录屏幕或导航到登录页面之前,如何销毁注销页面。 我尝试运行构造函数中的代码以清除本地存储,第一次运行正常,但第二次没有运行该代码。据我了解,该页面已经加载,因此不会再次运行构造函数。我尝试将我的代码放在ngDoCheck()中,但它触发了多次,我不想要。 我想清除路由历史记录,以便在

  • 到目前为止,我运行的是一台视窗8.1电脑,它没有像Android Studio或Eclipse这样的IDE的存储或内存。我想下载Android SDK工具,没有IDE。如何才能做到这一点?

  • 问题内容: 我尝试通过清除先前用户留下的所有私有数据来重用现有的WebView: 似乎只能清除可通过API访问的后退/前进列表,但不能清除用于为Web内容内部的链接着色的内部列表。 我什至尝试了以下方法,由另一个建议: 我仍然没有运气:CSS 选择器在重新加载页面后仍然可以工作。 一种替代方法是使用API​​级别11的私有浏览功能(新的构造函数参数),但随后我根本无法从访问的链接中受益;并且不能再

  • 我试图使用以下答案中的说明从Jenkins中删除构建历史: 如何清除我的詹金斯/哈德逊建筑历史? 但是,我得到以下错误消息: groovy.lang.missingMethodException:方法的无签名:jenkins.branch.organizationfolder.getBuilds()适用于参数类型:()值:[]可能的解决方案:getViews()、doBuild(jenkins.u