首页 > 解决方案 > 为什么 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

太感谢了。

毛里西奥·盖尔

标签: androidbackup

解决方案


在清单中使用这两个:

android:allowBackup="true"

android:fullBackupOnly="true"

为什么我们使用 fullBackuoOnly?

Marshmallow 之前的 Android 版本有一个备份系统,需要开发人员大量努力才能实施。如果您实现了该系统,但您希望您的应用程序在可用的设备上使用新的备份系统,您可以设置此标志以仅在新系统可用的设备上禁用旧的备份系统。这比删除旧备份系统的实现要好,因为旧设备将继续使用旧系统进行备份。如果您没有实现旧的备份系统,或者将其从您的应用程序中删除,则不需要此标志。


推荐阅读