在MainActivity清除缓存onDestroy()

时间:2013-08-15 12:09:41

标签: java android

我尝试清除缓存onDestroy()事件,如下所示。但它不起作用,缓存大小仍在增加。哪里错了?感谢

 @Override
        protected void onDestroy() {
           super.onDestroy();
           try {
              trimCache(this);
           } catch (Exception e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
           }
        }

        public static void trimCache(Context context) {
           try {
              File dir = context.getCacheDir();
              if (dir != null && dir.isDirectory()) {
                 deleteDir(dir);
              }
           } catch (Exception e) {
              // TODO: handle exception
           }
        }

        public static boolean deleteDir(File dir) {
           if (dir != null && dir.isDirectory()) {
              String[] children = dir.list();
              for (int i = 0; i < children.length; i++) {
                 boolean success = deleteDir(new File(dir, children[i]));
                 if (!success) {
                    return false;
                 }
              }
           }

           // The directory is now empty so delete it
           return dir.delete();
        }

1 个答案:

答案 0 :(得分:0)

尝试检查 dir.list() null 结果。可能有些目录没有内容,你在 children.length

NPE