2012-02-19 4 views
5

Пожалуйста, простите меня, если этот вопрос был дан ответ - я искал и не мог его найти.Стратегия обновления Android-приложения (с базой данных)

У меня есть приложение для Android, которое я хочу обновить, и оно использует базу данных SQLite. Я хочу обновить некоторую логику приложения в приложении, но обновлений схемы или содержимого базы данных не будет. Мне в основном нужно поддерживать базу данных точно так же, как и для пользователя.

Нужно ли что-либо делать в onUpgrade, чтобы гарантировать, что база данных сохранена, или я могу оставить только материал базы данных для этого обновления?

ответ

4

Этот related article может помочь вам с вашим вопросом.

Способ, которым я его понимаю, заключается в том, что вам нужно поместить вашу базу данных, изменяя код в onUpdate(), если вы ХОТИТЕ обновлять между версиями. Но поскольку вы не намерены и, вероятно, сохраняете версию базы данных одинаково, тогда у вас, скорее всего, не будет никаких проблем.

+1

это не вопрос правдоподобия. sqlite сохранит свою структуру и данные между версиями. между версиями ТОЛЬКО. то же приложение с другим ключом подписи не имеет доступа к ранее занятой песочнице, независимо от того, существует или нет упомянутая песочница. UPVOTED :) –

5

Метод onUpgrade() используется в случае изменения версии. Это означает, что база данных, хранящаяся в телефоне, должна быть изменена, удалена или удалена и создана новая база данных. Поскольку ваше приложение не имеет ни одного из этих требований, вы можете оставить материал базы данных для этого обновления.

+0

немного запутанный, м8. я понимаю (и соглашаюсь) с тем, что вы имеете в виду, но способ, которым он написан, может звучать так, как SQLite будет воссоздаваться между версиями, что НЕ является случаем. –

1

Обновление не будет препятствовать SQLite. Изменения в структуре db не будут реализованы, если вы программно не выполняете это (в методе onUpgrade), или вы удалите и переустановите приложение.

Пока это ТО ЖЕ ПРИЛОЖЕНИЕ, которое вы обновляете, ваш db не будет затронут, и ваши данные также не будут затронуты. Если вы измените ключ подписи, используемый при создании вашего apk, ваш db будет воссоздан.

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

ПРИМЕЧАНИЕ. При отладке я просто удаляю и переустанавливаю приложение каждый раз, когда я делаю изменения db, но в производстве вы НЕ ДОЛЖНЫ это делать.

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