2013-09-22 40 views
0

我有一個代碼來清除應用程序數據,但重新啓動應用程序後。所有數據都會返回。清除應用程序數據,重新啓動後回來

public static void ClearApplicationData() { 
    File cacheDir = GetCurrentApplication().getCacheDir(); 
    File appDir = new File(cacheDir.getParent()); 
    if (appDir.exists()) { 
     String[] children = appDir.list(); 
     if (children == null) 
      return; 
     for (String s : children) { 
      if (!s.equalsIgnoreCase("lib")) 
      { 
       File dirToDelete = new File(appDir, s); 
            //delete directory code 

      } 
     } 
    } 
} 

所以執行上面的代碼後,我查了data目錄應用程序的,它只有lib目錄左側。但是,當我再次運行應用程序時,所有目錄都恢復原樣。但是如果我使用管理應用程序>應用程序信息>清除數據,所有工作都很好。有什麼不同 ?

+0

我想你知道,有「清除數據」和「清除緩存」之間的區別嗎? – ozbek

回答

0

你是如何刪除目錄的?如果目錄不爲空,則文件類不會刪除目錄。您應該實施遞歸刪除方法或改爲使用Apache Commons IO。

這裏是一個有用的鏈接: deleting folder from java

+0

是的,我知道這一點,請閱讀問題,直到最後。正如我所說,它確實刪除了所有需要的目錄。但他們再次啓動應用程序後又回來了。 – xmen

+0

對不起。你檢查過目錄中的文件是否也回來了?或者它只返回目錄結構?也許Android首先需要創建一些目錄。 – DanielGL

+0

共享首選項值與上次設置保持相同,不是默認值,即使所有文件都被刪除。目錄中的文件是否也會返回舊值。只有從設置清除數據,完美的作品。 – xmen

相關問題