2010-09-07 4 views
2

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

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

Есть ли способ изменить имя пакета при сохранении базы данных SQLite? Или, по крайней мере, легко переместить базу данных? Это будет только для моего телефона, так как он еще не был выпущен для публики.

ответ

3

Шаг # 1: добавьте функцию резервного копирования/восстановления в приложение, которое копирует базу данных на/с SD-карты. Убедитесь, что ваши SQLiteDatabase и SQLiteOpenHelper объекты закрыты первыми.

Шаг № 2: Установите копию этого приложения, созданного с помощью старого пакета, на свой телефон и используйте его для резервного копирования базы данных.

Шаг № 3: Установите производственную копию этого приложения на свой телефон и используйте его для восстановления базы данных.

+0

Этот Отлично, спасибо. Я нашел отличный пример кода для примера: http://www.screaming-penguin.com/node/7749. Как только база данных импортируется, есть простой/простой способ проверить, что это база данных, которая была сохранена этим приложением? В случае импорта некоторого недопустимого файла может возникнуть случайное исключение, я бы предположил, что – HXCaine

+0

@HXCaine: «Как только база данных импортируется, есть простой/простой способ проверить, что это база данных, которая была сохранена этим приложением?» - Вы можете выполнить некоторые запросы на 'sqlite_master', чтобы убедиться, что это выглядит нормально. http://www.sqlite.org/faq.html#q7 – CommonsWare

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