2011-06-08 79 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也工作正常升級時是沒有問題的;)