【问题标题】:Storing temporary images best practice存储临时图像最佳实践
【发布时间】:2013-01-06 11:08:15
【问题描述】:

我正在创建一个应用程序,该应用程序从服务器下载六张最近的图像(缩略图),然后通过滑动(通过Viewpager)下载接下来的六张。在向后滑动时,它会显示前六个。存储它们的最佳做法是什么?我应该将它们保存在 sqlite 数据库中并在会话后删除,还是应该将它们存储在堆上? 目前我将它们存储在堆上,当下载 42 个缩略图时,它会破坏前六个。

【问题讨论】:

  • 使用Universal-Image-Loader 并选择内存缓存或磁盘缓存选项。
  • 对不起,我有不同的问题。而且我不能使用它,因为我使用 JSON 指令从 MongoDB 下载图像

标签: android sqlite


【解决方案1】:

这取决于。这是堆内存和速度与持久性需求之间的权衡。

但是,如果您必须永久存储图像,请将它们作为单独的文件保存在应用程序的缓存目录(internalexternal)中,而不是保存在 SQLite 数据库中。 SQLite 最适合存储结构化数据而不是二进制 blob。如果您有关联的元数据,您可以将文件的路径与 SQLite 中的元数据一起存储。

当设备存储空间不足时,缓存中的文件将被自动删除。但请阅读文档以了解警告。

如果您选择在堆中缓存,请考虑使用LruCache。它在support library 中适用于 API 级别

当然,最好的选择是让一个小的内存缓存由一个更大的文件缓存来备份。

【讨论】:

    猜你喜欢
    • 2018-01-21
    • 2020-12-18
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 2021-01-23
    • 2010-10-18
    • 2022-06-29
    • 2011-10-17
    相关资源
    最近更新 更多