android - 为什么 Android 的 allowBackup 不起作用?
问题描述
我在我的应用程序 Android 清单中有:
android:allowBackup="true"
但是,尽管使用的是 Android 8 设备,但在我手动放入控制台之前,备份无法正常工作:
adb shell bmgr backup @pm@ && adb shell bmgr run
和...
adb shell bmgr fullbackup <PACKAGE>
正如Android开发人员指南测试备份所说的那样。
我已经测试了这么多设备,当我将它放入控制台时,它开始正常工作,我可以从 Google Play 卸载和安装应用程序,而不会丢失 SharedPreferences。但是,如果我不在连接设备的 Android Studio 控制台中编写此内容,则备份将不起作用。
这很奇怪,因为许多其他应用程序恢复了他们的数据,所以我认为设备设置没问题,我在代码中遗漏了一些东西。
这是我的 build.gradle sdk 规范
def valueMinSdkVersion = 15
def valueTargetSdkVersion = 28
太感谢了。
毛里西奥·盖尔
解决方案
在清单中使用这两个:
android:allowBackup="true"
android:fullBackupOnly="true"
为什么我们使用 fullBackuoOnly?
Marshmallow 之前的 Android 版本有一个备份系统,需要开发人员大量努力才能实施。如果您实现了该系统,但您希望您的应用程序在可用的设备上使用新的备份系统,您可以设置此标志以仅在新系统可用的设备上禁用旧的备份系统。这比删除旧备份系统的实现要好,因为旧设备将继续使用旧系统进行备份。如果您没有实现旧的备份系统,或者将其从您的应用程序中删除,则不需要此标志。
推荐阅读
- r - rowSums(Qf) 中的错误:“x”必须是至少二维的数组 (msm::msm2surv)
- c# - NET CORE 2.0 将 IHtmlLocalizer 放入 _Layout 并在 .cshtml 文件中使用
- javascript - Javascript删除事件并添加事件
- python - 检查坐标间隔中是否存在值
- python - 在python中获取给定周数的第一天和最后一天
- javascript - 将表单值传递给 react.js 中的 onclick 处理程序
- docker - 作为多阶段构建的一部分安装卷
- java - 我可以让 Selenium WebDriver 在每次操作之前等待吗?(出于调试目的)
- regex - MongoDB 正则表达式数组(反向正则表达式?)
- java - Solr 通用搜索,如何从搜索中删除某些字段?