2013-09-22 37 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

相关问题