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