xamarin - Xamarin Android 在运行时将 Manifest 更改为 allowBackup=true
问题描述
在我的 Xamarin Android 应用程序中,我在清单中设置了以下内容:
<application android:allowBackup="false" />
我必须这样做,因为每次我安装应用程序时,它会在存储一些信息时跟踪 sqlite 数据库的先前图像。将该行添加到清单后,每次我重新安装应用程序时,我都有一个干净的数据库可以使用,因此没有使用以前的信息。
但这又产生了另一个问题。我的应用程序上有一个按钮,它只是将本地数据库的副本创建到外部存储。如果我不在 Manifest 中设置 allowBackup="false",则此副本可以正常工作,但是由于我必须这样做(对于我前面提到的问题),我发现自己不可能让这两个东西都正常工作(即干净每次安装后的数据库以及创建数据库副本到外部驱动器的可能性)。
我认为一种可能的解决方法是在清单中保留 allowBackup="false" 但在创建数据库副本之前将其更改为“true”。然后我可以将标志改回“假”。
但我怎样才能做到这一点?我没有在网上找到任何关于此的内容。谢谢你。
解决方案
清单的目的是不能更改。例如,您可以在此处声明您的应用可以访问的内容(在 Android Marshmallow 之前,这是进行此类声明的唯一方法)。显然,这些事情在运行时无法改变。
此外,备份的目的是在所有情况下进行恢复,包括您不喜欢的情况(无论出于何种原因仍不清楚,因为我不明白为什么您的应用程序无法继续使用它正常工作的数据在卸载应用程序之前),所以基本上你不想要备份,你应该将它设置为 false。
推荐阅读
- amazon-lex - Amazon Lex 名称变体
- azure - Azure 自动化 - 使用管理单元设置用户密码
- c# - EF 核心 DbContext.Attach 引发错误参数类型不匹配
- ios - Firebase swift错误Storage.storage()在范围内找不到“存储”
- python - Ploltly express scatterplot 不允许对分类标签进行排序
- kotlin - 从 JWT 中的服务器获取响应
- python - python tkinter中的移动图像
- r - 使用国家代码包将大陆/地区列添加到数据框
- typescript - 如何有效地处理接口中的对象与数组
- java - 我在java中练习插入排序,但是当我在内部循环中用++j替换j+1时,它就卡在那里了