Предварительно заполненная база данных Android - добавление новых предварительно заполненных строк после публикации

У меня проблемы с предварительно заполненной базой данных в Android. Не обычные проблемы, хотя. У меня база данных работает просто отлично.

Моя проблема связана с добавлением новых данных после публикации приложения.

Я потратил много времени на метод onupgrade, но потом до меня дошло, что моя проблема в другом месте. Как только я добавил новые строки в свою базу данных в папке с активами, как мне добавить их в базу данных, которая была скопирована в мою папку данных / данных.....

В моей базе данных хранится информация об уровне игры, последний столбец таблицы - это флаг, обозначающий пройденный уровень, поэтому я не могу потерять эту информацию.

1 ответ

Решение

Вы можете добавить некоторые файлы исправлений sql, а затем прочитать их, чтобы обновить базу данных.

Я использовал его просто со статическим классом FileHelper, который я скопировал из поста Дэнни Ремингтона на SO, а затем сделал:

try {
    InputStream in = mgr.open(assetFile);
    String[] statements = FileHelper.parseSqlFile(in);
    dao.mDb.execSQL("BEGIN TRANSACTION;");
    /*dao.mDb is a reference to the SQLiteDatabase from my dao*/
    for (String statement : statements) {
        dao.mDb.execSQL(statement);
    }
    dao.mDb.execSQL("COMMIT;");
    in.close();
} catch (IOException e) {
    //
}
Другие вопросы по тегам