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

Смежные вопросы