Сохранение данных базы данных SQLite при обновлении приложения / переустановке Rollout Xamarin - PullRequest
0 голосов
/ 17 января 2019

У меня есть общий проект Xamarin.Forms, который я сейчас тестирую на телефоне Android.

БД sqlite хранится в System.Environment.SpecialFolder.Personal на данный момент.

Я хочу убедиться, что сохраненные в БД данные пользовательского ввода сохраняются:

1 при каждом следующем обновлении я планирую приложение, а также

2 В дополнительной ситуации, когда пользователь полностью удаляет свое приложение и производит новую установку

(Полагаю, это две совершенно разные ситуации, но я могу ошибаться)

Я хотел бы знать, будет ли обновление приложения через Обновление магазина Google Play также перезаписывать файл БД, поэтому все данные будут потеряны? Или данные будут сохранены?

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

Во втором случае я рассматриваю ручное / автоматическое резервное копирование используемой версии SpecialFolder.Personal db и сохранение ее в виде отдельного файла вне пакета с использованием разрешений External_STORAGE.

Тогда пользователь сможет импортировать данные из внешней копии файла базы данных в ту, которая входит в пакет.

Кроме того, как должен выглядеть импорт? Можно ли просто заменить файл на внешний?

Любые советы на эту тему будут очень благодарны.

1 Ответ

0 голосов
/ 17 января 2019
  1. Обновление из Google Play не перезапишет файл БД
  2. Если пользователь удаляет приложение, он захочет удалить все, что связано с приложением. Поэтому мое лучшее решение - использовать метод синхронизации в вашем API, чтобы при повторной установке приложения пользователь заполнил локальную БД запрошенными данными.
...