2013-11-11 3 views
0

Есть ли способ сбросить все данные приложения? Я имею в виду базу данных, кеш, папку приложения и т. Д. Я хочу это сделать, когда вызывается приложения onDestroy(). Я ищу глобальное решение - я не знаю созданные таблицы в базе данных, я знаю только имя пакета.перезагрузить приложение Android в исходное состояние

+2

[Очистить данные приложения программно] (http://stackoverflow.com/questions/6134103/clear-applications-data-programatically) – Vivart

+0

http://www.rgagnon.com/javadetails/java-0483 .html – diordna

+0

Ну, я знаю все это, они почти одинаковы. Но он не работает отлично. Я искал что-то вроде универсального встроенного метода Android, который делает это – Heisenberg

ответ

0

Попробуйте этот код.

public void clearApplicationData() { 
      File cache = getCacheDir(); 
      File appDir = new File(cache.getParent()); 
      if(appDir.exists()){ 
        String[] children = appDir.list(); 
        for(String s : children){ 
          if(!s.equals("lib")){ 
            deleteDir(new File(appDir, s)); 
            Log.i("TAG", "**************** File /data/data/APP_PACKAGE/" + s +" DELETED *******************"); 
          } 
        } 
      } 
    } 

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

     return dir.delete(); 
    } 

Courtesy hrupin. Для большего количества кликов here

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