2016-08-01 3 views
0

Я использовал следующий код для удаления кеша приложения.Очистка кэша приложений для очистки приложений также

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; 
    } 

Как только я удалю код, он удалит поставщика, который я объявил в манифесте. Есть ли способ очистить кеш без удаления поставщика контента?

ответ

1

Вы можете избежать этого, не удаляя папку базы данных

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

да, спасибо за то показать мне правильный путь –

Смежные вопросы