Android: 应用重启后如何access/manage缓存文件?

Android: How to access/manage cached files after an app restart?

查看有关缓存的文档,似乎我应该使用 createTempFile(),但如果调用成功,它总是会创建一个空文件。即使使用相同的参数再次调用,它也不会 return 相同的文件名。

  1. 所以如果我重新启动应用程序,我是否无法检索临时文件?

  2. 如果我想实现一个 LRU 算法来从缓存中删除文件,那么使用文件名和时间戳的键值对创建一个普通(非临时)文件是否合理? (因为我认为 android 不会更新任何类型的文件上次访问时间)

我可能会单独管理内存中的缓存文件。为缓存文件创建一个单独的目录,并使用内存中的 LRU 单例 class 来管理文件。每次应用程序重新启动时,扫描缓存目录并从目录内容重新加载 LRU 缓存。您将在重新启动时丢失缓存统计信息,如果这是一件坏事,则可以在暂停时进行处理。

管理内存中的缓存将比编写和重写键值对文件快得多。

您打算在缓存中保留多少个文件?