【问题标题】:Clearing application data, comes back after restart清除应用数据,重启后返回
【发布时间】:2013-09-27 08:56:38
【问题描述】:

我有一个清除应用程序数据的代码,但在重新启动应用程序后。所有数据都回来了。

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 目录。但是当我再次运行应用程序时,所有目录都恢复原样。但是,如果我使用管理应用程序 > 应用程序信息 > 清除数据,一切正常。有什么不同 ?

【问题讨论】:

  • 我猜你知道“清除数据”和“清除缓存”有区别吗?

标签: android


【解决方案1】:

你是如何删除目录的?如果目录不为空,则文件类不会删除目录。您应该实现递归删除方法或改用 Apache Commons IO。

这是一个有用的链接: deleting folder from java

【讨论】:

  • 是的,我知道这一点,请阅读问题直到最后。正如我所说,它确实删除了所有必需的目录。但他们在再次启动应用程序后又回来了。
  • 很抱歉。您是否检查过目录中的文件是否也回来了?或者它只返回目录结构?也许 Android 需要在第一次启动时创建一些目录。
  • 共享首选项值保持与上次设置相同,而不是默认值,甚至所有文件都被删除。是的,目录中的文件也会返回旧值。只有从设置中清除数据,才能完美运行。
猜你喜欢
  • 2011-12-25
  • 2019-08-04
  • 1970-01-01
  • 2019-01-04
  • 2015-06-13
  • 1970-01-01
  • 2023-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多