1. 程式人生 > >Android手動清除APP中Data目錄下的檔案

Android手動清除APP中Data目錄下的檔案

在專案中這樣的需求,在使用者觸發重置的時候需要清除自身APP中的資料,APP自身的資料儲存在/data/data/packagename/目錄下,如下圖: 




lib目錄下儲存so庫檔案,不能清除,需清除其他目錄下的檔案; 

Java程式碼  收藏程式碼
  1.     /** 
  2.      * 清除APP資料 
  3.      */  
  4.     private void clearData() {  
  5. //      final String path = "/data/data/" + getPackageName().toString();  
  6.         final String path = getFilesDir().getParent();  
  7.         //清空配置檔案目錄shared_prefs;  
  8.         File file_xml = new File(path + "/shared_prefs");  
  9.         if (file_xml.exists()) {  
  10.             File[] files = file_xml.listFiles();  
  11.             for (int i = 0; i < files.length; i++) {  
  12.                 files[i].delete();  
  13.             }  
  14.         }  
  15.         //清空快取目錄;
      
  16.         File file_cache = getCacheDir();  
  17.         if (file_cache.exists()) {  
  18.             File[] files = file_cache.listFiles();  
  19.             for (int i = 0; i < files.length; i++) {  
  20.                 files[i].delete();  
  21.             }  
  22.         }  
  23.         //清空file目錄;  
  24.         File file_file = new
     File(path + "/files");;  
  25.         if (file_file.exists()) {  
  26.             File[] files = file_file.listFiles();  
  27.             for (int i = 0; i < files.length; i++) {  
  28.                 files[i].delete();  
  29.             }  
  30.         }  
  31.         //清空資料庫目錄;  
  32.         File file_db = new File(path + "/databases");  
  33.         if (file_db.exists()) {  
  34.             File[] files = file_db.listFiles();  
  35.             for (int i = 0; i < files.length; i++) {  
  36.                 files[i].delete();  
  37.             }  
  38.         }  
  39.     //這裡可以重啟你的應用程式,我的app中有service,所以我只要殺死程序就自動重啟了。  
  40. android.os.Process.killProcess(android.os.Process.myPid());   
  41. }