我想获取目录中的文件列表,但我想对其进行排序,使得最旧的文件是第一个.我的解决方案是调用File.listFiles,然后根据File.lastModified求助于列表,但我想知道是否有更好的方法.
编辑:我建议的当前解决方案是使用匿名比较器:
File[] files = directory.listFiles();
Arrays.sort(files, new Comparator<File>(){
public int compare(File f1, File f2)
{
return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
} });
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,显示来自互联网的图片(展示设计师的工作).我开始在内部缓存目录中缓存我的内容,但应用程序内容可能需要大约150 MB的缓存大小.什么是Android文档说的:
您应该始终自己维护缓存文件并保持合理的空间限制,例如1MB.当用户卸载您的应用程序时,将删除这些文件.
所以我看了一下Currents应用程序(Galaxy Nexus),应用程序的缓存大小是110 MB.但奇怪的是,Google Currents和Google Maps等应用程序将内容缓存在所谓的(USB存储数据)中:

那么前一个应用程序使用的"USB存储数据"是什么呢?如果你在应用程序中实现缓存,你是否循环缓存中的所有应用程序文件,以便在每次需要插入内容时获取大小,然后进行比较和清除?或者你是否继续缓存内容,直到Android决定清理一些应用程序缓存目录的时间?
我真的很想知道在Android中管理缓存的流程是什么,或者至少其他应用程序如何处理缓存的大内容.