Обновление приложения с предустановленным SQLite - PullRequest
1 голос
/ 05 августа 2011

Мое приложение использует предварительно загруженные и скопированные из / assets в data / data ( Отправка приложения с базой данных ) дБ, которые представляют собой просто одну таблицу данных о продукте и доступны только для чтения, как пользователине сохранять в БД.Если я добавлю больше продуктов в таблицу БД, мне нужно передать это существующим пользователям.Если я обновлю свое приложение с новой БД, процесс обновления удалит старую БД, которая была скопирована из директории активов в данные / данные, что позволит сбою проверки «DBexists» при первом запуске обновленной версии, что приведет к копированию новой БДиз / активы в данные / данные?

Ответы [ 2 ]

1 голос
/ 05 августа 2011

Короткий ответ, да, если вы поместите следующий фрагмент в метод onUpgrade():

try {
    copyDataBase("database.db");
} catch (IOException e) {
    Log.w(TAG, e);
}

Возможно, стоит удалить файл БД в copyDataBase() перед тем, как переписать его, просто чтобы сделатьменее вероятно, что он будет поврежден.

Примечание: здесь используется реализация, использованная в принятом ответе на вопрос, который вы связали.

0 голосов
/ 05 августа 2011

Вдобавок ко всему, единственное, что я могу придумать, - это слегка злоупотребить методом onUpgrade () в вашей реализации SQLiteOpenHelper и изменить базу данных, вызвав ее с новым номером версии и получив его.в этом методе делайте все, что вам нужно.

Сказав это, я мало что знаю о процессе обновления приложений Android, так что это может быть далеко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...