现在的android应用会在SD卡中出现大量的图片缓存,时间越长,积累的缓存越来越多,从用户的角度分析肯定是不好的,因此应该在你写的应用写个手动清理缓存SD缓存的代码处理,不废话,具体实现如下:
1),文件操作类:
import java.io.File; import java.io.IOException; import android.text.TextUtils; /** * * @ClassName: FileUtils * @Description: TODO(文件处理类) * * @Author: 王富彬 * @Date: 2013-11-3 下午1:33:41 * * @Update by: wangfubin * @Update time: 2013-11-3 下午1:33:41 * * @AppName: * @Version: * @company: * */ public class FileUtils { /** * * @Title: deleteFolderFile * @Description: TODO(清除缓存功能实现) * @param @param filePath 缓存路径 * @param @param deleteThisPath 是否缓存 * @param @throws IOException 设定文件 * @return void 返回类型 * @throws */ public static void deleteFolderFile(String filePath, boolean deleteThisPath) throws IOException { if (!TextUtils.isEmpty(filePath)) { File file = new File(filePath); if (file.isDirectory()) {// 处理目录 File files[] = file.listFiles(); for (int i = 0; i < files.length; i++) { deleteFolderFile(files[i].getAbsolutePath(), true); } } if (deleteThisPath) { if (!file.isDirectory()) {// 如果是文件,删除 file.delete(); } else {// 目录 if (file.listFiles().length == 0) {// 目录下没有文件或者目录,删除 file.delete(); } } } } } }
2),在异步加载图片中统一图片缓存路径;
3),清理文件缓存操作;
try { FileUtils.deleteFolderFile(Environment.getExternalStorageDirectory().getPath()+"/cache", false); Toast.makeText(SettingActivity.this, “缓存成功”, 2000).show(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
注意cache是你缓存的图片路径,注意图片路径的统一应该在你开始搭建应用就应该去注意的。
希望我的博文对你有所帮助,如有错误,请指正,谢谢