2011-09-01 201 views
0

我有一個在android市場上發佈的應用程序,現在我想用數據庫中的更改創建一個新版本。問題是,我在已經發布的應用程序的版本有此onUpgrade方法:關於onUpgrade方法的問題android

@Override 
    public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion) { 
    Log.w("TaskDBAdapter", "Upgrading from version " + 
    _oldVersion + " to " + 
    _newVersion + ", which will destroy all old data"); 
    // Drop the old table. 
    _db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_1); 
    _db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_2); 
    // Create a new one. 
    onCreate(_db); 
    } 

因爲我想添加一個新表,我知道,我要在這裏做一些改變,以保持從數據我已經使用舊版本創建的表格。那麼什麼onUpgrade方法將被調用,從舊的或從新的.apk。我可以保留表格中的數據嗎?請告訴我。 提前感謝您。

回答

1

那麼什麼onUpgrade方法將被調用,從舊的或從新的.apk。

從新的.apk。這個時候老人已經不在了。

我可以保留表中的數據嗎?

您必須按照您需要的方式編碼升級,以便根據需要保留包含舊數據的數據。

+0

感謝ü,我主要是擔心會不會是來自新的或舊的apk。你回答了我的問題 – Sandra

0

刪除表格將會終止當前的所有數據。爲了保存數據,你需要編寫一個自定義的onUpgrade方法來完成這個任務。下面是一前一後,討論這一點,可以給你,你需要做的一些想法:

SQLiteOpenHelper onUpgrade() Confusion Android