我使用下载管理器下载文件并安装它。
我很好奇是否有办法将其从下载历史记录中删除而不实际从磁盘中删除文件?
据我所知,没有回调可以告诉用户是否安装了文件,所以我想将其放在磁盘上,而仅将其从下载历史记录中删除。
这是我的下载代码:
//创建下载经理 最终下载manager.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));
我很好奇的另一件事是我的广播接收器是否完成()?我是从助手课上调用的,因此由于某种原因,我无法访问其中的完成功能。
排队之前:
- 添加后缀" .download"下载本地路径
OnReceive回调:
- 从DM下载列(SRC)获取本地URI
- remove'。下载"来自URI(DST)的后缀
- 将" src"重命名为" dst"
- 从下载管理器中删除ID
结果:文件仍在磁盘上,DM清洁