Почему Android перезаписывает сохраненные данные при развертывании? - PullRequest
0 голосов
/ 25 марта 2020

Прежде всего, пожалуйста, примите во внимание, что я новичок в ie для Xamarin. Разработка форм и мобильных приложений в целом, поэтому решение этой проблемы может быть довольно простым. Тем не менее, я много гуглил без какого-либо рабочего решения.

Мое приложение в Xamarin.Forms (c#), и я использую Visual Studio 19. Я тестирую его на телефоне Xiaomi.

Я имею дело с проблемой, возникающей при развертывании приложения на телефоне. Это происходит только после некоторых изменений в AndroidManifest. xml (так что я предполагаю какие-то "глубокие" изменения) и после удаления и переустановки приложения. Проблема в том, что я храню некоторые данные SQLite, которые мне нужны, чтобы оставаться в телефоне даже после удаления (мне нужно, чтобы данные были видны после открытия того же приложения после переустановки). Но приложение запоминает некоторые данные, которые были фактическим вводом, например, неделю go, но не восстанавливает (после переустановки) ничего более нового, чем это. Я приведу пример, чтобы продемонстрировать это лучше. Я вчера что-то сохранил в базе данных SQLite. Когда я удаляю приложение, затем нажимаю кнопку запуска и отладки, оно успешно собирается, развертывается и т. Д. c. но после того, как приложение открывается, оно показывает только данные за неделю go (а не данные вчера / сегодня).

Теперь в документации Android я прочитал, что автоматическое резервное копирование (с телефона на Google Drive) происходит примерно раз в день (если android:allowBackup="true", но это по умолчанию). Я также читал, что размещение android:fullBackupContent="true" в <application> (что в AndroidManifest. xml) может помочь, но в моем случае это не помогло. Я также знаю, что в VS есть это: Сервис -> Параметры -> Xamarin -> Android Настройки → «Сохранить кэш данных приложения на устройстве между развертываниями» (у меня есть эта галочка)

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

Кстати, мой манифест выглядит так:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.myappname">
  <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
  <application android:label="myappname.Android"
               android:allowBackup="true"
              android:fullBackupContent="true"></application>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

Надеюсь, я все объяснил достаточно.

Спасибо.

...