Предварительно заполненная база данных 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) {
//
}