Как не удалять уже существующую базу данных SQLite во время обновления патча

#android

#Android

Вопрос:

На начальном этапе я установил свое приложение для Android с пустой базой данных. Затем установка создаст базу данных с именем Inventory и скопирует базу данных, уже созданную с различными таблицами с помощью SQLite browser, во вновь созданную базу данных. Через несколько дней данные будут сохранены в базе данных SQLite при запуске моего приложения.

Проблема в том, что когда я устанавливаю приложение для обновления патча с некоторыми изменениями для следующего выпуска. Моя уже запущенная база данных приложения должна остаться там. Что я могу сделать, чтобы сохранить старую базу данных при установке с новым файлом apk?

Также что, если мне нужно обновить базу данных во время обновления патча без потери данных?

Ответ №1:

Вы автоматически добавляете базу данных в хранилище Android, поэтому ее нельзя сохранить в проекте. Вы должны создать базу данных из проекта и вставить данные внутри, чтобы база данных была сгенерирована при первом запуске.

Вот отличное руководство для этого: vogella.de

И еще один: androidforbeginners.blogspot.com

Я надеюсь, что это поможет

Комментарии:

1. при использовании этого метода данные будут потеряны. Мне нужны мои уже введенные данные там сами

Ответ №2:

Вы можете проверить, существует ли база данных уже путем вызова SQLiteDatabase.openDatabase(String, SQLiteDatabase.CursorFactory, int) . Если он выдает SQLiteException , он не существует, и только тогда вы должны скопировать файл вашей базы данных.

Я предлагаю вам расширить SQLiteOpenHelper класс и реализовать методы onCreate(SQLiteDatabase) и onUpgrade(SQLiteDatabase, int, int) , чтобы помочь управлять созданием и обновлениями вашей базы данных.