繁体   English   中英

android中的延迟加载

[英]Lazy loading in android

我想将通过蓝牙接收的图像的缩略图延迟加载到ListView中。 我在Android上看到了许多LazyLoading的实现,但是我只是不明白流程中的惰性加载器是如何工作的。

顺便说一句,我提到这个网站

http://androidexample.com/Download_Images_From_Web_And_Lazy_Load_In_ListView_-_Android_Example/index.php?view=article_discription&aid=112&aaid=134

在上述实现中,它们同时使用了内存缓存和文件缓存(在ImageLoader类中)。 我不明白为什么必须维护两个缓存?
在同一个类中,他维护一个Map imageViews。 为什么他需要imageViews和Image url的映射?

任何人都可以解释以上代码的流程或提供一些有关设计自己的lazyloader类的提示。

提前致谢

我不明白为什么必须维护两个缓存?

它正在实现2级缓存,因此您在内存中具有1级缓存。 此高速缓存比磁盘高速缓存(文件高速缓存)快,但不能包含太多元素。 第二级缓存(文件缓存)较大,但速度较慢。 因此,当它需要图像时,请先尝试从一级缓存中获取它,如果找不到该图像,请尝试二级缓存。 如果图像均不在其中,则从URL下载。 从互联网上检索到图像后,该图像将存储在第一级缓存中。 如果缓存上的图像多于缓存大小,则将最近使用最少的图像从第一级缓存移到第二级。

使用2级缓存可以最大程度地减少Internet连接的使用,从而存储您最近使用的那些图像。

为什么他需要imageViews和Image url的映射?

缓存知道您所请求的图像是否已在缓存中的方式是在地图中查找URL。 认为它是图像的ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM