1

当我的应用程序连接到服务器时,我会检查哪些图标已过时或丢失。
我将这些图标存储在 sqllite 数据库中,图标不是很大,大约在 5-10kb 之间。

每次活动开始时,我都会去数据库并获取必要的图标。

但是我的许多活动都使用相同的图标,所以我想从数据库中获取它们一次,然后将它们缓存在某个地方以加快我的应用程序。

我该怎么做?

我正在阅读此链接: http: //developer.android.com/training/displaying-bitmaps/cache-bitmap.html,他们提到了用于位图的 lruCache。

但这对我想要实现的目标来说是不是有点矫枉过正?

4

2 回答 2

2

绝对没有。LruCache 是缓存内容的正确方法,它与图像的大小无关。请记住将缓存创建为单个元素,以供整个应用程序上的任何元素平等访问。

不要像某些人建议的那样使用弱引用。它们在 Android 上不能很好地工作,如果你有搜索的心情,你可以查看 YouTube 上的 Google IO 2012 谈话,Android 团队自己正在解释为什么不使用 Wea​​kReference 以及如何正确使用 LruCache。

编辑

找到了 youtube 链接 http://www.youtube.com/watch?v=gbQb1PVjfqM&feature=plcp

于 2012-10-29T12:50:19.520 回答
1

您的问题听起来不像是在问如何进行内存缓存,而是在问这样做是否合理。应用程序是否已经觉得图标加载是一个瓶颈?您的应用程序还在做什么?也许是一些网络?有多少活动(在所有活动中)实际上有一些图标?每个活动有多少个图标?总共有多少个图标?从@Budius 帖子中猜测,在 Android 上正确执行内存缓存并不是完全简单的问题,因此请确保您没有进行不合理的过早优化

于 2012-10-29T13:04:59.500 回答