一些背景知识:主页包含大约25个在回收视图中显示的缩略图。我从API收到JSON响应,该响应包含这些图像的URL和其他数据。
我将JSON字符串保存在objectBox数据库实例中,并在需要显示它们时使用GSON.fromJSON
创建实际对象。顺便说一句,我使用MVVM模式。
现在我要考虑三种情况:
1)更改活动时,操作系统可以随时删除任何当前未显示的活动,而不会发出警告以及带有该图像的图像。我应该将图像缓存(在哪里?在内存中(不想浪费它)或存储?),还是应该在用户返回主要活动时再次下载它们?在我看来,每次用户切换活动时都需要下载图像。
2)当用户完全关闭应用程序并再次启动它时,所有未保存在磁盘上的内容都会被擦除。在这种情况下,我可以下载图像,因为这只是一次处理,并且数据库可能仍需要更新。
3)最后,当手机未连接到互联网时,该应用程序应显示一些图像,即使这些图像可能不是最新的。
所以我的问题是,在这种情况下应如何缓存图像?正确的方法是什么?
我可以直接在objectBox中缓存图像,还是可以使用SQLite更好?还是应该使用Picasso这样的其他库进行缓存?
答案 0 :(得分:1)
通常是的,图像应至少缓存在内存中,并取决于您的应用程序(在内存和存储中被重用的可能性等)。如果要支持第3点(脱机时显示),则需要进行存储缓存,并且内存缓存是可选的,但这可能是个好主意。
使用哪个库(或者,如果您使用一个库,我有充分的理由反复尝试使用自己的库),这是该站点的主要问题,这与该站点无关。而且,我们需要您对用例有很多特定的了解,才能为您提供另一个建议。