1. 程式人生 > >安卓下Glide快取問題

安卓下Glide快取問題

1、想要重新載入圖片

(URL沒變,圖片變了)

2、發現無法重新載入,以為是有快取的原因

於是使用clear(view),但是隻能清除控制元件上的圖片,並不能真的清除快取
又使用clearMemory(),還是不行
又使用clearDiskCache(),出現報錯,提示要在background thread後臺執行緒中呼叫,臥槽….
最後在Stack Overflow找到方法,如下

Glide.with(this)
    .load(URL)
    .signature(new StringSignature(UUID.randomUUID().toString()))  // 重點在這行
.error(R.mipmap.ic_launcher) .into(setting_face_img);

3、原因

Glide中的圖片快取key的生成是通過一個雜湊演算法來實現的,所以很難手動去刪除指定的圖片快取
Glide的圖片快取都有對應的唯一識別符號,如果是相同的,就不載入呼叫快取
不過改變識別符號很困難,所以Glide提供signature()方法,來附加一個數據到快取key中

如果連結是檔案,就用StringSignature,
比如.signature(nre StringSignature(yourVersionMetadata)).
如果連結是多媒體,就用MediaStoreSignature,
比如.signature(new MediaStoreSignature(mimeType, dateModified, orientation))

相關推薦

Glide快取問題

1、想要重新載入圖片 (URL沒變,圖片變了) 2、發現無法重新載入,以為是有快取的原因 於是使用clear(view),但是隻能清除控制元件上的圖片,並不能真的清除快取 又使用clearMemory(),還是不行 又使用clearDiskCach

new Date()在正常,在IOS顯示不出來

顯示 安卓 strong fine def 不支持 返回 方案 nbsp 之前用JS在做一個倒計時,在PC端和安卓下面顯示沒問題,在IOS下顯示不出來。 查找了資料,鏈接我忘記了。 原因是:   在IOS下,new Date("2000-2-22 00:10"),返回的

載文件怎樣更新UI進度

文件下載 observe 頁面 provide 導致 源代碼 tag chan fcm 曾經寫過幾篇關於下載的文章。總的來說是下面幾點: 1、維護一個下載進程的Hashmap,key:使用Md5進行處理後的文件下載地址,value為下載的Task。以防止下載

拉刷新和上拉加載的具體實例

.get ora api測試 getwidth rem image rap posit span 1.配置 //下拉刷新,上拉加載更多api ‘com.cjj.materialrefeshlayout:library:1.3.0‘ 2.先上項目圖 3. Div

瀏覽器(包括微信)video 小窗口播放

瀏覽器 str asc col controls vid webkit idt con <video id="video" width="100%" autoplay="autoplay" playsinline x5-playsinline webkit-play

Android核心技術-day05-05-的多執行緒下載(帶ProgressBar)有bug版

package com.gaozewen.multidownloader; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; impor

拉框 Spinner

<!--普通下拉框--> <Spinner android:id="@+id/main_sn1" android:layout_width="match_parent" android:layout_hei

H5 在input下面按鈕被頂上來解決方法

data () { return { clientHeight: document.documentElement.clientHeight } } mounted () { var n = navigator.userAgent if (n.index

的視訊快取

專案中遇到視訊播放,需要載入網路url,不可能每次都進行網路載入,當然了,就需要用到我們的快取機制 AndroidVideoCache AndroidVideoCache是一個視訊/音訊快取庫,利用本地代理實現了邊下邊播,使用起來非常簡單。 HttpProxyCa

網路資料快取策略

前言 對於大部分 App 來說,網路請求都是必不可少的,而且不少App是以資料為主。如果不做資料快取,在網路慢的情況下,會降低使用者體驗度。 彷彿有一段時間沒寫部落格了,嚇得我都祭出了神圖。 Json/Xml資料快取策略 對於文字類資料,同一

使用autoLayout用px寫佈局完成適配的適配

首先,專案初期 需要根據設計師的效果圖來搭建佈局, 設計師給的尺寸是1334x752的,然後設計圖上全部標註的是畫素,  如何弄一個萬能適配的佈局,且根據px來寫,這成為了一個問題; 看了需求,在網上借鑑了鴻洋大神,是一個比較好的方案: 第一步: 新增依賴 dependen

關於Ionic select在部分微信(QQ)點選無反應的解決方法

<div data-tap-disabled="true"> <select> <option value="one">One<

圖片三級快取策略與實現

前言: 這裡說的三級快取,分別指的是:記憶體快取、檔案快取和網路這三個層面。 一般來說,我們首次載入圖片,記憶體和檔案是沒有快取的,這樣我們需要從網路載入,載入完成後,我們會存到記憶體和檔案中去;當再次載入圖片的時候,我們會先查詢記憶體有沒有,如果有就直接顯示記憶體中的圖片

微信瀏覽器 MP4播放失敗,微信瀏覽器不能播放MP4問題的解決,gzip搗的鬼

今天遇到一個很奇葩的事,MP4視訊在安卓的微信瀏覽器中播放不了,提示“微信瀏覽器 MP4播放失敗” 但是在其他手機瀏覽器裡可以播放,而且蘋果的微信中也可以播放 最後研究了一下午,找到原因了,即使“gzip”導致的播放失敗,這個也算是微信在安卓下的一個BUG 解決方法很簡單:

Builder模式解析+自定義Dialog實戰演練

**本文將從一下幾個方面展開: 1Bulider模式的原理和使用 2系統Dailog的呼叫 3自定義Dailog 4自定義Dailog的一些小坑** 自定義Dailog效果: 1.Bulider模式的原理和使用 當你看到這樣的一串程式碼

如何使用XmlPullParser解析xml檔案並顯示在TextView控制元件上

解析xml檔案有好多種方式,今天介紹下XmlPullParser怎麼解析xml檔案,既然是要解析xml檔案首先得需要一個xml檔案 如下weather.xml檔案 <?xml version="1.0" encoding="utf-8"?> <weathe

阿里antd-mobile移動高清rem方案 不相容chart 和 app webview 在錯亂問題

前言 最早基於手淘做過一次H5 rem適配, 當時基於Hybrid APP。後面使用antd-mobile後,使用 阿里的高清方案。css 新增calc 函式 可以處理邊框 配合 flex佈局。但是字型大小要額外處理,並且部分安卓機型不支援calc,以及1px

cocos2dx在編譯報錯error1:libcocos2dcpp.so 無法生成

一、首先第一點要確定自己選擇的 NDK 版本是否存在問題,是否與專案所需匹配 ,正常編譯過程會自動選擇預設的NDK 版本,但是這也會導致了libcocos2dcpp.so 庫檔案無法成功生成,  更改方法 ,可以在 android 下的  jni=》選擇applicatio

關於Glide播放gif圖的相關用法

重點內容 其中start_play是要播放的gif圖,glide的相關配置,可以自行百度 Glide.with(this).load(R.drawable.start_play).listener(

拉列表框【3】

pan activity border cin left 資源 pro 內容 1.0 Spinner(下拉列表框) 方法 描述 CharSequence getPrompt () 取得提示文字 void setPrompt(CharSeque