2011-09-01 200 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