1. 程式人生 > >關於Fresco的快取清理的那些事

關於Fresco的快取清理的那些事

前言

我相信很多人對Fresco這個優秀的第三方網路圖片處理框架不陌生,無論從使用還是配置而言都是很人性化的簡單,今天要講述的是我遇到的關於快取清理的事情。(原文

正文

  • Fresco自身的快取清理時機
    當我們手動退出整個app的時候,發現之前載入過的圖片不會出現重新載入的情況,說明這種情況下,快取依舊還在。但是當我們通過手機的後臺關閉app的時候,就會出現重新載入,快取也沒了。這個是我們人為測出來的,你們也可以試試,這是Fresco自身的一個清理機制。

  • Fresco的快取哪裡統計
    用過這個框架的人很多,但是真的去計算他的快取了多少的人,貌似並不多,我也是百度了無數,然而並沒有找到答案,我一度以為也許是他封裝處理的太深了,後來去看原始碼,準備做最後的策略,找到他的快取資料夾的目錄,然後計算資料夾的大小,這也是很多第三方網路圖片載入計算快取的一個套路方式,這個方法可行,但是麻煩了點,最終我在google上一個老外的帖子裡面,看到了方法,大家可以看看

    private void showCacheSize(){
            ivClean.setVisibility(View.INVISIBLE);
            tvCacheSize.setVisibility(View.VISIBLE);
            long cacheSize = Fresco.getImagePipelineFactory().getMainDiskStorageCache().getSize();
            if(cacheSize<=0){
                tvCacheSize.setText
("0.00B"); }else{ float cacheSizeTemp1 = CommUtil.changToTwoDecimal(Math.round(cacheSize / 1024)); float cacheSizeTemp2 = CommUtil.changToTwoDecimal(Math.round((cacheSize/1024)/1024)); if(cacheSizeTemp1<1){ tvCacheSize.setText
(cacheSize+"B"); }else if(((cacheSizeTemp1>=1)&&(cacheSizeTemp2<1))){ tvCacheSize.setText(cacheSizeTemp1+"KB"); }else if(cacheSizeTemp2>=1){ tvCacheSize.setText(cacheSizeTemp2+"MB"); } } }

這個顯示方法是我自己寫,大家只要看到核心的那句

long cacheSize =Fresco.getImagePipelineFactory().getMainDiskStorageCache().getSize();

這是最簡單的方式了沒有之一,這是顯示的部分,讓我們再看看如何清理

  • Fresco的快取如何清理
    一般來說我們都不太需要手動去清理,因為Fresco本身就帶有自我清理的機制,詳情看上面的清理時機,但是當我們的app需要一個清理快取的功能的需求的時候,一言不合就去找方法,很欣慰我們還是找到了
case id.tvCleanCache:
                ImagePipeline imagePipeline = Fresco.getImagePipeline();
                imagePipeline.clearCaches();
                ivClean.setVisibility(View.VISIBLE);
                tvCacheSize.setVisibility(View.INVISIBLE);
                new Handler().postDelayed(new Runnable() {
                    public void run() {
                        showCacheSize();
                    }
                }, 2000);
                break;

因為我們需要一個表示在清理的過程動畫,清理快取的關鍵程式碼就是

ImagePipeline imagePipeline = Fresco.getImagePipeline();
                imagePipeline.clearCaches();

這樣就清理了,你會發現之前的載入的圖片又會重新載入了,成功了!

總結

實踐才是最好的學習方式,本篇文章不難,只是找尋答案的過程很重要,是一個程式設計師自我完善的一個學習過程,希望能help到有需要的朋友,��,bye

相關推薦

關於快取那些

cookie的缺陷是非常明顯的1. 資料大小:作為儲存容器,cookie的大小限制在4KB左右這是非常坑爹的,尤其對於現在複雜的業務邏輯需求,4KB的容量除了儲存一些配置欄位還簡單單值資訊,對於絕大部分開發者來說真的不知指望什麼了。2. 安全性問題:由於在HTTP請求中的co

快取】HTML5快取那些

關於儲存 說到儲存,你可能會想到這是伺服器端的一種設定。 伺服器端的儲存介質大體上分為4種: cache:快取,它可以讓從資料庫、磁碟上輸出的東西/資料放置在快取裡,從而減少資料庫或是磁碟的讀取與寫入(IO)操作; 磁碟檔案:如,我們常常會將圖片

Mybatis快取那些

今天寫程式碼的時候碰到了一個情況 簡單的的寫了一個小demo @Test @Transactional public void test(){ Role role = new Role(); role.setRolename(

關於Fresco快取清理那些

前言 我相信很多人對Fresco這個優秀的第三方網路圖片處理框架不陌生,無論從使用還是配置而言都是很人性化的簡單,今天要講述的是我遇到的關於快取清理的事情。(原文) 正文 Fresco自身的快取清理時機 當我們手動退出整個app的時候,發現之前

mybatis快取那些(一)

前言 mybatis快取作為mybatis中的基礎知識還是很有必要研究透的,mybatis快取分為一級快取(本地快取)和二級快取。這裡主要和大家一起學習一下mybatis中的一級快取。一級快取是Session會話級別的快取,位於表示一次資料庫會話的SqlSession物件之中,又被稱之為本地快取

mybatis快取那些(二)

前言 前面在mybatis快取那些事(一) 中,我們介紹了mybatis的一級快取。這裡再和大家一起學習下mybatis中的二級快取。 MyBatis的二級快取是Application級別的快取,它可以提高對資料庫查詢的效率,以提高應用的效能。 MyBatis的快取機制整體設計以及二級快

核心是如何管理記憶體的&&頁面快取-記憶體與檔案的那些

轉: 核心是如何管理記憶體的 原文標題:How The Kernel Manages Your Memory 原文地址:http://duartes.org/gustavo/blog/    [注:本人水平有限,只好挑一些國外高手的精彩文章翻譯一下。一來自己複習,二

Laravel 程式快取優化技巧 « 關於網路那些...

設定訊息快取 會將config內容合併儲存在 /bootstrap/cache/config.php 重新設定.env 時,直接輸入這個指令就能更新設定內容 php

Fresco的使用和快取清理

Fresco 是一個強大的圖片載入元件。使用它之後,你不需要再去關心圖片的載入和顯示這些繁瑣的事情!它還有3級快取。所有在圖片載入的時候根本不需要擔心出現OutOfMemoryError等異常出現。 1.新增配置: (1).新增   compile 'com.faceb

哈夫曼編碼(Huffman coding)的那些,(編碼技術介紹和程序實現)

信號 truct 依次 while 交換 需要 .text 示例 system 前言   哈夫曼編碼(Huffman coding)是一種可變長的前綴碼。哈夫曼編碼使用的算法是David A. Huffman還是在MIT的學生時提出的,並且在1952年發表了名為《

Android Studio 那些|Activity文件前標識圖標顯示為 j 而是 c

div roi 右下角 ext blog 識圖 cti 問題: content 問題:Activity文件前標識圖標顯示為 j 而是 c 的圖標,或是沒有顯示,並且自己主動提示不提示 解決:這是由於你的studio設置了省電模式,你能夠通過 File>

軟件project—思考項目開發那些(一)

app 爛代碼 fontsize 模式 大型 不明確 極限 後拋 con 閱讀文件夾: 1.背景2.項目管理,質量、度量、進度3.軟件開發是一種設計活動而不是建築活動4.高速開發(簡單的系統結構與復雜的業務模型)5.技術人員的業務理解與產品經理的業務理解的終於業務模型

IPv4中的A,B,C類網及子網掩碼那些

來看 了解 擁有 nbsp 開發 信息 alt 位或 其余 IP 地址的主要類型有五種 A B C D 和 E 一般 A B C 類地址更為常用 每類地址都是由 32 位或 4 個字節組成 A類地址: 在 A 類地址中第一個 8 位字節表示網絡部分 其余 3 個 8 位字節

Kafka文件存儲機制那些

kafka 方便 成對出現 讀者 開源項目 sock 位置 通過 刪除 點評一下先:kafka的存儲主要有幾個特點: 1. 多級索引(名義上是1級索引,但是這級索引依賴了文件列表,相當於文件列表是第一級索引,所以是二級索引),二級索引文件和數據文件一一對應。 相比只有1

關於代碼調試de那些

左右 == 一次 done 推斷 編輯 有用 track 幾分鐘 原文出處:http://www.wklken.me/posts/2014/11/23/how-to-debug.html 關於代碼調試de那些事 1.你得明白你在做什麽, 保持清醒 2.想清楚了再寫代碼

我的項目管理那些

機會 軟件設計 nio 需求 一段 領導 團隊 失業 證書 在2015年加入WD之前,準確的說,在2013-2015年我第一份工作的這段時間,我完全不知道自己工作是跟項目管理關系很大的。 2013碩士畢業後,以部門助理的身份開始第一份正式工作,每天的瑣事雜事很多、很亂,除了

關於System.Convert那些

方法 osi system popu exception mes tox resource object 關於System.Convert那些事 前言 不知咋的,今天腰疼的不行,疼的站不起來了,今下午突然就疼起來了,唉,這是身體要垮了的節奏啊,再加上自己的

產品經理的那些第一章讀書筆記

工作內容 完成 個人 評審 深入 數據 直銷 分析 img 1.一個產品經理的信仰:好產品能改變世界。 2.為什麽要做產品經理:因為熱愛,改變世界的方法有很多,技術可以改變世界,好的產品也可以,當然還有其他,但我熱愛產品,一件事只有熱愛了,才能持續不斷的去做好,所以我

樹狀數組和線段樹的那些

線段 專題 更新 pan 執行 方便 分支 快速查找 二維 樹狀數組和線段樹的那些事 共同點:線段樹,樹狀數組都是用來快速搜索。 線段樹通過分支查找,樹狀數組通過用二進制快速查找,樹狀數組的查詢和更新時間復雜度都是O(logN),通常來說,樹狀數組能做的線段樹都能解決。線段

關於函數那些第一輯

http href get targe blog 函數 lan nbsp pro 關於函數那些事第一輯