在离线模式下获取已保存的图像

时间:2018-05-02 22:39:07

标签: android sqlite android-sqlite offline-caching

我正在开展一个项目,用户可以搜索不同城市的图像。

假设用户搜索了德里,然后保存结果,以便下次用户在没有互联网连接时搜索同一城市时,应显示之前保存的图像(本例中为德里)。

请建议一个好方法,在sqlite和缓存之间混淆

1 个答案:

答案 0 :(得分:0)

如果图像高于100k,则应将它们保存为文件,并将路径保存到数据库中的文件中。如果它们大约在100k左右或更低,则可以将它们保存为数据库中的字节数组。

SQLite本身就是自己的缓存,大约100k的边界是基于35% Faster Than The Filesystem的结果(即SQLite可以更有效地将数据存储为字节数组(BLOBS)),还有一个事实是对于Android的2M光标窗口的限制,所以如果从数据库中提取数据,如果一行超过这个,则会导致失败。

缓存和SQlite之间的区别在于SQLite是持久的,即数据存储到磁盘。缓存基本上是将数据保存在内存中,这不是持久性的。但是,SQLite本身使用缓存。看看PRAGMA schema.cache_size;