问题概述
图片的三级缓存是指Android在加载过程中,为了加强用户体验和减轻服务器压力,将图片保存到本地的过程
在三级缓存使用过程中,出现的问题如下:
此问题出现图片读取SD卡过程中,并未造成应用程序错误,经过逐一排查发现这个问题只出现在首次加载的过程中,故问题应该出现在首次从SD卡中获取图片的代码块。
经过排查发现,造成这一问题的原因是首次从SD卡中获取图片代码编写未判断文件是否存在造成的造成的,修改后代码如下:
public static Bitmap getImageFromSDCard(String path,Context context) {
String file = null;
if(sdState()){
file = context.getExternalCacheDir().getAbsoluteFile()
+path.substring(path.lastIndexOf("/"));
File f= new File(file);
if(f.exists()){
return BitmapFactory.decodeFile(file);
}
}
return null;
}
总结归纳: 当进行SD卡中内容查找时,一定要判断是否文件存在,否则很容易出现以上问题