如何在升级/更新时最轻松地删除Android应用程序数据?

问题描述:

所以,我发现了一个特定sdk中的错误,导致它在重新安装使用sdk的新版本的应用程序后,在某些Android手机上失败(通过adb install -r,大概是当用户获得已推到Android市场的更新)。有什么方法可以强制应用程序的数据在更新应用程序时自动清除?我意识到有数据可以存储的不同方式,但我只需要模拟调用“清除数据”按钮,在设置的“管理应用程序”部分浏览到应用程序时,您会发现该按钮。我只想让所有数据都消失)。如何在升级/更新时最轻松地删除Android应用程序数据?

我是一个Android noob,我在这个项目上做了最小的Java编码,所以我基本上在这里寻找最简单的解决方案。我想我可以决定将“currentVersion”存储到磁盘,然后每次启动时检查它,看当前版本是否与上次启动时写入磁盘的版本匹配。这是唯一真正的方法吗?如果是这样,那么最简单的方法是什么?

谢谢!

有没有什么办法强制应用程序的数据在应用程序更新时自动清除?

不,至少是我对“自动”的定义。

我想我可以决定将“currentVersion”存储到磁盘,然后每次启动时检查它是否与当前版本与上次启动时写入磁盘的版本相匹配。这是唯一真正的方法吗?

我将其命名为lastKnownVersion,但否则这种方法听起来很合理,可能是您唯一可行的选择。

如果是这样,那么最简单的方法是什么?

嗯......做你刚刚说的话。使用Java I/O(将文件存储在getFilesDir()的某处)或SharedPreferences

请记住,如果您在应用程序更新中放弃其数据,您的用户可能会感到沮丧。就个人而言,我宁愿找到更好的解决方案来解决原始问题(“我发现某个特定sdk中的错误,导致它在重新安装使用sdk的应用程序的新版本后在某些Android手机上失效” )。

+0

我同意。但这只会发生在我的应用程序的免费版本,因为我所指的SDK实际上是广告的提供者。因此,我无法真正负担仅仅放弃应用程序,让他们不能正确看到广告,所以我唯一的选择是强制他们卸载并重新安装应用程序,这似乎是一个可怕的想法。 – rrbrambley 2010-10-26 14:50:52