我从远程服务器获取应用程序中的大量缩略图,并在列表视图中延迟加载这些缩略图。
图像提取在后台AsynTask中运行,完成后,使用SoftReferences将获取的图像存储在HashMap中。
这很好用但是当缓存中的图像得到GC时,必须重新运行提取。
我可以将它们存储在SD卡上,这样就不会重新获取。
但我没有采用这种方法,因为它会在SD卡上造成混乱。
当活动/应用程序完成/退出时,是否可以替换这些类型的临时文件夹?
缓存图片的“理想场所”是什么?任何建议,示例项目或指针都将不胜感激。
答案 0 :(得分:5)
您应该检查文件数据存储选项:
http://developer.android.com/guide/topics/data/data-storage.html
文件正在保存在应用程序目录中,因此任何地方都不会出现问题。最终将使用该应用删除文件。您还可以实现一些在应用启动时清除缓存的方法(例如,删除超过2周的文件)。
答案 1 :(得分:0)
您应该能够在SD卡上找到SQLite DB。这样可以让您拥有相当干净的接口/缓存空间,同时将数据保存在非常有限的内部手机内存中。您可以通过调用openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)来指定DB的位置。这可能比您想要的工作量更多,但是当您使用一行或两行代码卸载应用程序时,您应该能够清除数据库。
更多来自此处的文档:
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html