2017-09-08 14 views
0

,글라이드 안드로이드에서 캐시 크기를 늘리는 방법은 무엇입니까? <a href="https://github.com/bumptech/glide/wiki/Configuration#size" rel="nofollow noreferrer">documentation</a>에 따르면

내부 캐시 팩토리는 응용 프로그램의 내부 캐시 디렉토리에있는 디스크 캐시를 배치하고 인 250MB의 최대 크기를 설정합니다.

내 앱에서 오프라인 기능을 구현하려고 할 때 250MB보다 큰 캐시 크기가 필요할 수 있습니다. 글라이드는 캐시 크기를 수정하도록 허용합니까? 아니면 이것을 수행 할 대체 방법을 찾아야합니까? 그렇다면 어떤 메커니즘을 따라야합니까?

나는 그것을 늘리는 접근 방식 인 documentation에서 보았습니다.

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

어떻게 구현합니까?

+0

처럼 추가 . – ianhanniballake

+0

예,하지만 어떻게됩니까? 그리고 그것을 구현할 곳은 어디입니까? – Aveek

+1

https://stackoverflow.com/a/28738237/3364266이 링크 확인 –

답변

0

here을 참조하십시오.

InternalCacheDiskCacheFactory를 사용하여 디스크 캐시의 크기를 설정할 수 있습니다.

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

당신은 아래와 같이이 프로젝트에 적용 할 수 있습니다

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) { 
    } 


} 

다음 매니페스트에 그것은 말 그대로 문서의 다음 라인이

<manifest 

    ... 

    <application> 

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

     ... 

    </application> 
</manifest>