Android清除我的应用程序的文件夹文件

时间:2014-08-17 15:13:25

标签: java android sd-card

我正在开发一个将许多文件下载到SD卡的应用程序。对于没有SD卡的设备。它使用内部存储。 只要存储空间低于500Mb,操作系统就会清除我用来存储文件这些文件的文件夹。有没有人有这样的问题? 我认为这个问题与内部存储的内存交换有关(当它低于500MB时,它会清除应用程序文件夹)。 感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

documentation可以帮助你

  

如果您想缓存一些数据,而不是持久存储,   你应该使用getCacheDir()打开一个代表的文件   应用程序应保存临时缓存的内部目录   文件。

     

当设备内部存储空间不足时,Android可能会删除   这些缓存文件可以恢复空间。但是,你不应该依赖   系统为您清理这些文件。你应该永远保持   缓存文件自己并保持在合理的空间限制内   消耗,如1MB。当用户卸载您的应用程序时   这些文件已删除。

文档没有说明在尝试恢复空间时考虑了什么硬限制。内部存储空间是否有足够的空间也不在您的控制之下。如果发现缓存丢失,请重新填充缓存,并尝试在缓存文件上保持较低的开销。

作为一个例子,我不久前写了一个应用程序,下载图像和声音片段并缓存它们。如果它们在缓存中可用,则返回它们。如果没有,我会再次尝试下载它们并将占位符图像放在实际数据所在的位置。

另一个解决方案是将您的数据存储在Android操作系统不被视为cache的目录中。但是,您冒着使用数据过度填充用户磁盘的风险,并且在卸载应用程序时不会删除您的数据。

答案 1 :(得分:0)

您要在哪个目录中保存下载的文件?

请看一下: http://developer.android.com/reference/android/os/Environment.htmlhttp://developer.android.com/training/basics/data-storage/files.html

还要记住" ExternalStorage"的定义:

  

"注意:不要被"外部"这个词弄糊涂。这里。此目录最好被视为媒体/共享存储。它是一个文件系统,可以容纳相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上这是一张SD卡,但它也可以作为内置存储器实现,该设备不同于受保护的内部存储器,可以作为文件系统安装在计算机上。"