【发布时间】:2018-10-13 03:33:33
【问题描述】:
我正在做一个项目,用户可以在其中搜索不同城市的图像。
假设用户搜索了德里,那么应该保存结果,以便下次当用户在没有互联网连接的情况下搜索同一个城市时,应该显示以前保存的图像(在这种情况下是德里)。
请提出一个好方法,混淆sqlite和缓存
【问题讨论】:
标签: android sqlite android-sqlite offline-caching
我正在做一个项目,用户可以在其中搜索不同城市的图像。
假设用户搜索了德里,那么应该保存结果,以便下次当用户在没有互联网连接的情况下搜索同一个城市时,应该显示以前保存的图像(在这种情况下是德里)。
请提出一个好方法,混淆sqlite和缓存
【问题讨论】:
标签: android sqlite android-sqlite offline-caching
如果图像超过 100k,您应该将它们保存为文件,并将文件的路径保存在数据库中。如果它们大约 100k 或更少,那么您可以将它们保存为数据库中的字节数组。
SQLite 本身会进行自己的缓存,大约 100k 的边界基于35% Faster Than The Filesystem 的发现(即 SQLite 可以更有效地将数据存储为字节数组 (BLOBS))以及存在限制的事实Android的2M的Cursor Window,所以如果从数据库中提取数据时,如果一行超过这个,就会导致失败。
缓存和 SQlite 的区别在于 SQLite 是持久的,即数据存储在磁盘上。缓存基本上是将数据保存在内存中,它不是持久的。但是,SQLite 本身确实使用缓存。看看PRAGMA schema.cache_size; 。
【讨论】: