2017-09-08 5 views
0

Nach dem documentation,Wie erhöht man die Cache-Größe in Glide Android?

Der interne Cache-Fabrik legt sich den Disk-Cache in Ihrer Anwendung internen Cache-Verzeichnis und legt eine maximale Größe von 250 MB.

Da ich versuche, einige Offline-Funktionen in meinen Apps zu implementieren, ist möglicherweise eine Cache-Größe von mehr als 250 MB erforderlich. Also erlaubt Glide, die Cache-Größe zu ändern, oder muss ich einen alternativen Weg finden, dies zu tun? Wenn ja, welchem ​​Mechanismus sollte ich folgen?

Ich habe in der documentation einen Ansatz gesehen, um das zu erhöhen.

builder.setDiskCache(
new InternalCacheDiskCacheFactory(context, yourSizeInBytes)); 

Wie implementiere ich das in meinem Code?

+0

Es ist buchstäblich die nächste Zeile der Dokumentation . – ianhanniballake

+0

Ja, aber wie? und wo soll das umgesetzt werden? – Aveek

+1

https://Stackoverflow.com/a/28738237/3364266 Überprüfen Sie diesen Link –

Antwort

0

Siehe here.

Sie können die Größe des Plattencaches mithilfe von InternalCacheDiskCacheFactory festlegen.

builder.setDiskCache(new InternalCacheDiskCacheFactory(context, yourSizeInBytes)); 

Sie können wie unten in diesem Projekt anwenden:

import android.annotation.TargetApi; 
import android.content.Context; 
import android.os.Build; 
import android.os.Environment; 
import android.os.StatFs; 
import android.util.Log; 

import com.bumptech.glide.Glide; 
import com.bumptech.glide.GlideBuilder; 
import com.bumptech.glide.load.engine.cache.InternalCacheDiskCacheFactory; 
import com.bumptech.glide.module.GlideModule; 
import com.example.MyApplication; 

import java.util.Locale; 

public class LimitCacheSizeGlideModule implements GlideModule { 

    @Override 
    public void applyOptions(Context context, GlideBuilder builder) { 
     if (MyApplication.from(context).isTest()) 
      return; // NOTE: StatFs will crash on robolectric. 
     builder.setDiskCache(new InternalCacheDiskCacheFactory(context, yourSizeInBytes)); 

    } 

    @Override 
    public void registerComponents(Context context, Glide glide) { 
    } 


} 

und dann in Ihrem Manifest fügen Sie es wie diese

<manifest 

    ... 

    <application> 

     <meta-data 
      android:name="YourPackageNameHere.LimitCacheSizeGlideModule" 
      android:value="GlideModule" /> 

     ... 

    </application> 
</manifest>  
Verwandte Themen