2011-08-05 46 views
0

我有一個應用程序在android市場上發佈,它使用sqlite並顯示數據。我想知道如果我通過添加功能發送應用程序更新,是否應該上傳新數據庫?當用戶已經擁有我的應用時,點擊更新會發生什麼?數據庫會自行更新嗎?如果用戶第一次下載我的應用程序,他們肯定會得到新的數據庫內容...但現有的用戶呢?我想知道是否必須明確更新程序中的數據庫android應用程序更新時的SQLite更新

回答

0

當您創建新版本...如果你改變了數據庫的版本...的onUpgrade功能將所有現有的用戶運行:

public static final int dbVersion = 2; 
protected static class DatabaseHelper extends SQLiteOpenHelper { 
    public DatabaseHelper(Context context) { 
     super(context, dbName, null, dbVersion); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     //create tables 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     //what do you want to do to existing users? maybe recreate? 
    } 
} 
0

爲什麼不通過代碼創建sqlite數據庫?這樣,您的更新可以更新數據庫上的SQL(更改列,添加行),而不會影響用戶現有數據。

+0

我已經把我現在的分貝在Assets文件夾和我是retri從那裏開始。所以我想知道如果我需要更換現有的數據庫或當用戶選擇更新...它會以某種方式獲取它? –

0

如果要更改數據庫的屬性然後更新用會造成問題,如果數據庫的屬性是相同的,那麼它不會有任何效果...

0

您可以使用android.database.sqlite.SQLiteOpenHelper類,它支持版本和遷移機制