【问题标题】:Do temporary files get deleted even while the app is running?即使应用程序正在运行,临时文件也会被删除吗?
【发布时间】:2013-07-30 08:16:18
【问题描述】:

背景

在 android 上,您可以这样创建临时文件(链接 herehere 获取文档):

final File temp = File.createTempFile("myFile", ".tmp", context.getCacheDir());

我正在开发一个使用临时文件的应用程序,当它使用完它们(以及在应用程序启动时)时,它会删除它们。

问题

文档说:

当设备内部存储空间不足时,Android 可能会删除 这些缓存文件以恢复空间。

这是否意味着即使我的应用程序仍在运行,文件也会被删除?在哪些情况下允许android删除文件?

也就是说,我是否可以假设只要我的应用程序在运行,即使其他应用程序创建了自己的临时文件,android也不会自行删除文件?

【问题讨论】:

  • 如果文件句柄保持打开状态,文件不会被删除。否则操作系统可以为所欲为。

标签: android caching storage temporary-files


【解决方案1】:

你可以测试一下。创建新应用程序,应用程序将数据写入文件并且内部存储空间已满。当内部存储完整的Android删除应用程序缓存目录时,应用程序存储在1Mb以上。如果应用程序缓存目录被丢弃,即使应用程序正在运行,Android 也会删除。否则,运行 Android 的应用程序永远不会删除缓存文件。

这是 developer.android.com 分享的原始链接 http://developer.android.com/reference/android/content/Context.html#getCacheDir()

注意:您不应依赖系统为您删除这些文件;您应该始终为缓存文件占用的空间量设置一个合理的最大值,例如 1 MB,并在超过该空间时修剪这些文件。

真相

为什么同样的人给我投票,我不明白,我说的是关于内部缓存警告的真实信息。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-08-25
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
相关资源
最近更新 更多