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

标签 java android sd-card

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

最佳答案

documentation可以在这里帮助您

If you'd like to cache some data, rather than store it persistently, you should use getCacheDir() to open a File that represents the internal directory where your application should save temporary cache files.

When the device is low on internal storage space, Android may delete these cache files to recover space. However, you should not rely on the system to clean up these files for you. You should always maintain the cache files yourself and stay within a reasonable limit of space consumed, such as 1MB. When the user uninstalls your application, these files are removed.

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

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

另一个解决方案是将数据存储在 Android 操作系统不认为缓存的目录中。但是,您面临着用户磁盘中数据过多的风险,并且卸载应用程序后您的数据不会被删除。

关于java - Android 清除我的应用程序的文件夹文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25350506/

相关文章:

java - 安全性:将 javax.mail.Message 加密写入文件

java - Android:数组索引越界错误

java - 在 Nexus 上拍摄照片时,自定义相机显示暗图片预览

android - 如何在 Activity 上显示捕获的图像并同时将其保存在手机和sqlite数据库中?

linux - 通过 ssh 连接到开发板失败 - 重新格式化 SD 卡

java - 使用 Java 程序接收 Azure 服务总线队列中的待处理消息?

java - Kaltura 文件上传 API

java - 如何在android中对图像进行放大和缩小动画

android - 怎么把网站的文件存到sd卡

android - 在哪里放置她的应用程序的资源以便将它们安装在 SD 卡上?