在Android上降级数据库

时间:2010-02-02 19:59:53

标签: database android sqlite versioning downgrade

我测试过Android可以通过newVersion< oldVersionSQLiteOpenHelper.onUpgrade()方法,即。它希望应用程序降级其数据库。

我不想处理这种情况,虽然我想以某种方式通知用户我的应用程序的更新版本(她显然已经安装过),这就是她应该使用的版本。

任何想法最好的方法是什么? ToastAlertDialog(但在什么情况下)?

2 个答案:

答案 0 :(得分:2)

事实上,您可以使用小于“旧”版本的“新”版本调用该方法,但什么时候会发生?

除非您希望用户手动重新安装您的应用,使用之前的APK覆盖它,否则无需考虑这一点。

答案 1 :(得分:-1)

我们的应用程序有多个活动分支(例如v1.x和v2.x),我们在内部提供版本以进行测试。这意味着测试人员偶尔会将旧版本安装在较新版本的顶部。

在这种情况下优雅地应对(一个有用的错误弹出窗口,吹掉数据库等)是个好主意,否则测试人员会看到“强制退出”消息,然后我们必须查看{{1 }}日志以确认这是由于版本不匹配造成的。

最初,我担心还有其他合理的情况会发生这种情况,例如:在Android Market中重新激活旧版本时(例如,由于新版本中的灾难性错误)。

但是,Android docs似乎表示您无法激活旧版本:

  

您无法激活版本代码低于其替换版APK的新APK。

因此,要启用此方案,您需要使用新版本号重建旧版本,然后才能激活它。国际海事组织仍然值得应对这种情况,因为有人可能会在凌晨4点轻易犯这个错误,同时试图退出不良版本!