我在Android Market中有一个名为SieveSMS的应用程序。它基本上可以让人们根据规则阻止传入的短信,就像outlook对电子邮件一样。
我更改了DB结构,如下所示(在同一个表中)
1)数据库版本2
添加新列“未读”
2)DB版本3
添加新栏目“例外”
如果已经拥有应用但尚未升级到版本2的用户现在看到该应用的第3版,会发生什么?如何确保版本2中的更改也可供人们使用?
除此之外,如果安装了版本2且尝试升级到版本3的人会发生什么情况。onUpgrade是否会出现“未读”列已存在的错误?
您是否认为在基于当前版本的数据库的onUpgrade方法中使用条件条件是明智的?
答案 0 :(得分:3)
有许多关于Android开发的书籍解释了onUpgrade。作者使用条件来检查新旧版本是什么。解决问题的方法非常简单:
if (oldVersion < 2) {
db.execSQL(db, SQL_ADD_UNREAD);
}
if (oldVersion < 3) {
db.execSQL(db, SQL_ADD_EXCEPTION);
}
现在从1升级到3时没有问题,2到3也可以正常工作;)