您的位置:首页 > 其它

Glide作为图片缓存,清除缓存的合理方法

2017-05-31 15:54 176 查看
1.glide提供的方法:
下面是glide缓存的配置
public class GlideCache implements GlideModule {
@Override
public void applyOptions(Context context, GlideBuilder builder) {
//设置图片的显示格式ARGB_8888(指图片大小为32bit)
builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
//设置磁盘缓存目录(和创建的缓存目录相同)
String downloadDirectoryPath = Config.CacheImagePath+ "GlideCache";
//设置缓存的大小为100M
int cacheSize = 100 * 1000 * 1000;
builder.setDiskCache(new DiskLruCacheFactory(downloadDirectoryPath, cacheSize));
}

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

}
Glide.get(SettingActivity.this).clearDiskCache();
使用该方法可以安全的解决删除图片缓存
2.直接删除glide文件夹 简单粗暴删除
// 按目录删除文件夹文件方法
public static boolean deleteFolderFile(String filePath, boolean deleteThisPath) {
try {
File file = new File(filePath);
if (file.isDirectory()) {
File files[] = file.listFiles();
for (File file1 : files) {
deleteFolderFile(file1.getAbsolutePath(), true);
}
}
if (deleteThisPath) {
if (!file.isDirectory()) {
file.delete();
} else {
if (file.listFiles().length == 0) {
file.delete();
}
}
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
使用该方法 虽然可以删除文件夹 但是会出现 页面的图片无法显示了glide加载图片异常了 必须重新启动程序
所以该方法是不建议使用的
总结:
但是有时候我们图片文件夹缓存可能不只glide一个文件夹
可以特殊处理对于父类文件除了glide的直接删除 glide的缓存推荐使用第一种glide方法删除
// 按目录删除文件夹文件方法除了exceptpublic static boolean deleteFolderFile(String filePath, boolean deleteThisPath,String except) {try {File file = new File(filePath);if (file.isDirectory()) {File files[] = file.listFiles();for (File file1 : files) {if(!file1.getAbsolutePath().equals(except)) {deleteFolderFile(file1.getAbsolutePath(), true);}}}if (deleteThisPath) {if (!file.isDirectory()) {file.delete();} else {if (file.listFiles().length == 0) {file.delete();}}}return true;} catch (Exception e) {e.printStackTrace();return false;}}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  glide 缓存 图片