Android 6.0 – 外部存储文件在应用卸载时被删除

Android 6.0 – 外部存储文件在应用卸载时被删除,第1张

概述我的应用程序使用DownloadManager将文件下载到设备的“音乐”文件夹的子目录. DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));...File file = new File(Environment.getExternalStoragePublicDirectory(Envir 我的应用程序使用DownloadManager将文件下载到设备的“音乐”文件夹的子目录.
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));...file file = new file(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) + "/MyStuff/song.mp3");request.setDestinationUri(Uri.fromfile(file));

我注意到,当从运行Marshmallow的设备卸载该应用程序时,这些文件将被删除(这在旧的 *** 作系统版本上不会发生).
你有什么想法吗?@H_403_6@

谢谢@H_403_6@解决方法 这是通过名为 DownloadReceiver的内部类完成的,并在com.androID.provIDers.downloads package manifest中定义

<receiver androID:name=".DownloadReceiver" androID:exported="false">    <intent-filter>        <action androID:name="androID.intent.action.BOOT_COMPLETED" />        <action androID:name="androID.net.conn.CONNECTIVITY_CHANGE" />        <action androID:name="androID.intent.action.UID_REMOVED" />    </intent-filter>    <intent-filter>        <action androID:name="androID.intent.action.MEDIA_MOUNTED" />        <data androID:scheme="file" />    </intent-filter></receiver>

这里的androID.intent.action.UID_REMOVED动作抓住眼睛.它在Lollipop中引入,触发对handleUIDRemoved()执行的调用@H_403_6@

resolver.delete(ALL_DOWNLOADS_CONTENT_URI,Constants.UID + "=" + uID,null);
总结

以上是内存溢出为你收集整理的Android 6.0 – 外部存储文件在应用卸载时被删除全部内容,希望文章能够帮你解决Android 6.0 – 外部存储文件在应用卸载时被删除所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1133053.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存