2011-06-08 77 views
6

我已经在Android Market称为SieveSMS.It一个应用程序基本上让人们阻止基于规则的传入短信的,就像前景确实给电子邮件。的Android SQlite的OnUpgrade问题

我有改变如下DB结构(在同一个表)

1)DB 2版

添加一个新的列的 “未读”

2)DB版本3

增加了一个新列“异常”的

如果谁已经有应用,但人们还没有升级到2.0版本会发生什么,而他们不w看到应用程序的第3版?我如何确保版本2中的更改也可供人使用?

除此之外,如果谁拥有2版安装的人会发生什么,他们尝试升级到版本3.Will的onUpgrade给我列“未读”已经存在的错误?

你认为明智的做法是基于数据库的当前版本有代码onUpgrade方法的条件?

回答

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也工作正常升级时是没有问题的;)