簡體   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