我正在创建一个应用程序,从服务器下载六张最新图片(缩略图),然后通过Viewpager
下载。回放时显示了前六位。储存它们的最佳做法是什么?我应该将它们保存在sqlite数据库中并在会话后删除,还是应该将它们存储在堆中?目前,我将它们存储在堆中,当下载42个缩略图时,它会销毁前六个。
发布于 2013-01-06 12:26:27
那得看情况。这是堆内存和速度与持久性需求之间的权衡。
但是,如果您必须持久化地存储图像,请将它们保存为应用程序的缓存目录( 内部或外部)中的单个文件,而不是SQLite数据库中的文件。SQLite最适合存储结构化数据,而不是二进制blobs。如果有关联的元数据,则可以在SQLite中存储指向文件的路径和元数据。
当设备在存储器上运行不足时,缓存中的文件将被自动删除。但请阅读文档中的警告。
如果选择在堆中缓存,请考虑使用LruCache
。它在API级别< 11的支持库中可用。
当然,最好的选择是两个小内存缓存都由一个更大的文件缓存备份。
https://stackoverflow.com/questions/14181506
复制相似问题