即使在应用程序运行时,临时文件是否会被删除?

and*_*per 5 storage android caching temporary-files

背景

在android上,你可以创建临时文件(链接在这里这里的文档):

final File temp = File.createTempFile("myFile", ".tmp", context.getCacheDir());
Run Code Online (Sandbox Code Playgroud)

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

这个问题

文件说:

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

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

换句话说,我可以假设,只要我有应用程序运行,android将不会自己删除文件,即使其他应用程序创建自己的临时文件?

nur*_*gin 2

您将可以测试它。创建新应用程序,应用程序将数据写入文件,然后内部存储已满。当Android内部存储满时,删除应用程序缓存目录,其中应用程序存储超过1Mb。如果应用程序缓存目录被删除,Android 会在应用程序运行时将其删除。否则,当应用程序运行 Android 时,永远不会删除缓存文件。

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

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