如何在重新安装应用程序时删除数据

时间:2012-03-08 12:35:35

标签: android

感谢之前的回复,

重新安装应用程序后,是否可以从sqlite中删除存储的内容。我将数据存储在数据库中,一旦我再次重新安装相同的应用程序,以前的数据仍然存储在sqlite中。我想在重新安装应用程序时删除存储的内容。我不确定这一点。

6 个答案:

答案 0 :(得分:1)

这看起来像是一个黑客,也许不是真正的答案,但你可以 - 在每个新版本的应用程序中 - 在代码中增加一个标识符(从10到11)然后检查包含该标识符的存储首选项标识符。如果代码中的常量高于先前设备上存储的标识符,则可以将数据库清除为您认为其状态应该是什么。然后,随着应用程序的每个新发布版本,您将增加此数字..

编辑:在API级别9及更高版本中,您可以 - 在应用启动时 - 编写应用安装的日期(有关如何查找安装日期的说明,请参阅here) 。如果您检查它是在写入日期之后安装的,请终止数据!

答案 1 :(得分:1)

感谢所有回复,

我维护所有版本的版本代码,一旦我重新安装应用程序,我检查版本,如果我发现版本更改,我只需删除数据库。这种情况仅适用于覆盖APk的安装(即无需卸载应用程序)。当我们进行卸载时,应用程序的内部数据和sqlite会自动删除。

答案 2 :(得分:0)

sqlite数据库作为文件存储在您的文件系统中,以删除数据。您只需要删除该文件。

您要做的是设置某种方式来检测应用程序是否第一次运行,如果这是第一次运行应用程序,则检查数据库是否存在,是否确实将其删除。然后将数据库重新创建为空。

或者,如果数据库存在,您可以在第一次运行时删除每个表中的所有数据/删除数据库中的每个表。

答案 3 :(得分:0)

删除应用程序时,也应删除数据库。除非你遇到麻烦才能保留它。如果您只是更新应用程序,则应保留数据。如果您需要在重新安装时删除数据,请尝试以下操作:

每次启动活动时,请致电PackageManager.getPackageInfo()并检查lastUpdateTime。将其与存储在数据库中的时间戳或共享首选项进行比较。如果lastUpdateTime较新,请删除您的数据库。

答案 4 :(得分:0)

请在此处阅读:Detect Android app upgrade and set Application class boolean for show/hide of EULA

创建自己的UpgradeBroadcastReceiver,它将运行您想要的删除指令并将其注册到清单文件中。

答案 5 :(得分:0)

在卸载应用程序时删除

应用程序SharedPreferance,因此请保存boolean以确定应用程序是否第一次运行。