c# - 为什么Android在部署时会覆盖存储的数据?
问题描述
首先,请考虑到我是 Xamarin.Forms 和一般移动应用程序开发的新手,因此解决这个问题可能很容易。尽管如此,我在没有任何可行的解决方案的情况下进行了很多谷歌搜索。
我的应用程序在 Xamarin.Forms (c#) 中,我正在使用 Visual Studio 19。我正在小米手机上对其进行测试。
我正在处理将应用程序部署到手机时出现的问题。它仅在 AndroidManifest.xml 发生一些更改(所以我猜是某种“深度”更改)以及卸载并重新安装应用程序之后才会发生。问题是我存储了一些 SQLite 数据,即使在卸载后我也需要保留在手机中(我需要在重新安装后打开同一个应用程序后才能看到这些数据)。但是该应用程序会记住一些数据,这些数据是一周前的实际输入,但不会恢复(重新安装后)比这更新的任何数据。我将举一个例子来更好地展示它。我昨天和今天都在 SQLite 数据库中存储了一些东西。当我卸载应用程序时,然后单击开始调试按钮,它成功构建、部署等,但在应用程序打开后,
现在,在 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>
希望我已经解释了一切。
谢谢你。
解决方案
推荐阅读
- python-3.x - 在 Windows 上通过 Python 使用 rcmd(远程命令)
- html - 防止在缩放和悬停时向左移动时闪烁
- html - Bootstrap 4 / CSS 3 用于导航的下拉图像
- php - 在 Woocommerce 单品页面上显示 Dokan 供应商名称和总销售额
- java - Checkmarx Java 修复 Log Forging - 清理用户输入
- hibernate - Grails 升级到 3.3.9,循环依赖 hibernateDatastore
- sql - Oracle 查询未返回来自两个子查询的所有行
- javascript - 无法读取未定义的属性“x” - 蛇 [已解决]
- python - Numpy 无法正确恢复维度(tofile 和 fromfile 调用)
- django - Django Bootstrap + Angular?