2016-08-01 115 views
0

我使用以下代码删除我的应用程序缓存。Android清除应用程序缓存清除提供程序也

public void clearApplicationData() { 

     File cacheDirectory = getCacheDir(); 
     File applicationDirectory = new File(cacheDirectory.getParent()); 
     if (applicationDirectory.exists()) { 
      String[] fileNames = applicationDirectory.list(); 
      for (String fileName : fileNames) { 
       if (!fileName.equals("lib")) { 
        deleteFile(new File(applicationDirectory, fileName)); 
       } 
      } 
     } 
    } 

    public static boolean deleteFile(File file) { 
     boolean deletedAll = true; 
     if (file != null) { 
      if (file.isDirectory()) { 
       String[] children = file.list(); 
       for (int i = 0; i < children.length; i++) { 
        deletedAll = deleteFile(new File(file, children[i])) && deletedAll; 
       } 
      } else { 
       deletedAll = file.delete(); 
      } 
     } 
     return deletedAll; 
    } 

一旦我删除代码意味着它删除我在manifest中声明的提供者。有没有办法清除缓存而不删除内容提供者?

回答

1

您可以通过不删除数据库文件夹

if (!fileName.equals("lib")&&!fileName.equals("files")&&!fileName.equals("database")) { 
        deleteFile(new File(applicationDirectory, fileName)); 
       } 
+0

是避免这种情况,感谢您对我的正确途径 –