【问题标题】:Sqlite Database deleted when I clear data from Application当我从应用程序中清除数据时,Sqlite 数据库被删除
【发布时间】:2013-05-10 06:43:50
【问题描述】:

我在应用程序中创建了Sqlite 数据库。当我从settings->applications->manage applications 清除数据时,Sqlite db 被删除。保持sqlite 数据库不变的任何建议。

【问题讨论】:

  • 我已经阅读了这篇文章。运行本文中提供的一个示例。它保存插入在databasehelper类的oncreate方法中的数据。运行应用程序后,我已将记录插入数据库,然后再次清除数据,我插入的记录已被删除。 @努努
  • 是的,因为清除数据也意味着删除数据库..然后当应用程序启动并没有找到数据库时,它将再次创建它并插入oncreate中存在的记录
  • 但是在应用程序运行时插入的记录呢?我可以不存储它们吗? @努努
  • 您存储了它们,但通过清除数据您丢失了它们

标签: android android-sqlite application-management


【解决方案1】:

当您从 Android 应用程序管理器中按 Clear Data 时,它应该会删除与应用程序相关的所有内容,例如首选项、数据库、缓存等,唯一剩下的就是应用程序,因此当您重新启动时,它的行为就像它刚刚安装。

如果您想允许用户清除数据但保留数据库,那么菜单中应该有一个选项可以删除共享首选项但不对数据库执行任何操作。

希望这会有所帮助。

【讨论】:

  • 免费空间可以删除数据库的“更干净的应用程序”吗?
  • 我不这么认为,我认为更干净的应用程序只是清除实际上不再使用的文件,例如临时文件、更新文件等。应用程序拥有的文件(例如其数据库)可以据我所知,只能由应用程序本身或通过 Android 应用程序管理器来清除它。更干净的应用程序可能具有清除应用程序数据的能力,但它不可配置,我相信它与通过 Android 应用程序管理器清除数据的操作相同
【解决方案2】:

当用户想要清除所有内容时,为什么要保留数据。 不建议保留分贝。

我建议您在获得用户足够权限的情况下使用 sd 卡存储图像/文本文件。

【讨论】:

    【解决方案3】:

    Android 的 SQLite 旨在用于本地应用数据存储。当您选择擦除应用的数据时,此数据将被擦除(如预期的那样)。

    如果您想保留数据库数据,请查看外部存储(例如,已故的 Parse.com 或 MS 的 Azure)。您将进行网络调用,您的本地数据仍将被擦除,并且您需要有一种方法将您的应用程序与本地擦除后的外部数据(例如登录)链接起来,但您的外部数据将在应用程序数据清除后继续存在。

    “链接”部分也可以根据您的用例得到缓解,例如。 Google Play 游戏的数据服务与您的 Google Play id 相关联,并且会在应用擦除后重新同步。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 2019-12-02
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 2012-09-21
      相关资源
      最近更新 更多