完整备份内容xml文件应该为空还是根本不添加以包含所有内容?

时间:2016-03-10 18:38:25

标签: android xml backup

所以我在应用程序清单中添加了一些东西,我看到我的应用程序标签上有一个警告:

  

在SDK版本23及更高版本上,您的应用数据将自动备份并在应用安装时恢复。考虑添加属性android:fullBackupContent来指定一个@xml资源,该资源用于配置要备份的文件。

然后我搜索了那个。显然,只有2个标签:<include><exclude>。我不想从备份中排除任何文件,因为我没有任何本地相关文件,并且我不需要任何<include>标记

  

<include>: 指定要备份的一组资源,而不是让系统默认备份您应用中的所有数据。

当我看到如果我没有放置任何<include>标签时,系统将back up all data in your app by default,这正是我想要的。

现在我有了这个问题:我应该添加backup_content.xml文件,但是因为默认设置是好的,所以是空的,或者根本不添加文件? (在这种情况下,Android Studio会抱怨)

7 个答案:

答案 0 :(得分:19)

快速解决方案:

的AndroidManifest.xml

<application
    android:allowBackup="true"
    android:fullBackupContent="true"
    ...
    ...
    ...
</application>

有关详细信息,请参阅:https://developer.android.com/guide/topics/data/autobackup

答案 1 :(得分:3)

你可以添加android:fullBackupContent="true"androidmanifest.xml

答案 2 :(得分:3)

我也遇到了同样的问题,但找不到答案。因此,为了备份所有内容,我尝试制作这样的 backup.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
   <full-backup-content>

   </full-backup-content>

它工作正常。

编辑 06/04/21

刚刚从 Google IssueTracker 得到官方答复:

<块引用>

您的问题的答案出现在标题为包含和排除文件的部分的开头:“默认情况下,系统备份几乎所有应用程序数据”。 为了备份所有支持的数据,请勿在清单文件中包含 android:fullBackupContent。

答案 3 :(得分:2)

正确的解决方法:

警告是因为缺少 <full-backup-content> 资源。

为此,我们在应用程序标签中有 android:fullBackupContent,它指向一个 XML 文件,其中包含自动备份的完整备份规则。这些规则决定备份哪些文件。

示例:

<application ...
    android:fullBackupContent="@xml/my_backup_rules">
</application>

my_backup_rules.xml 目录中创建一个名为 res/xml/ 的 XML 文件。在文件中,添加带有 <include><exclude> 元素的规则。以下示例备份除 device.xml 之外的所有共享首选项:

<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
    <include domain="sharedpref" path="."/>
    <exclude domain="sharedpref" path="device.xml"/>
</full-backup-content>

更多信息参考:

https://developer.android.com/guide/topics/data/autobackup https://betterprogramming.pub/androids-attribute-android-allowbackup-demystified-114b88087e3b

答案 4 :(得分:1)

<application
        android:allowBackup="true"
        android:fullBackupOnly="true">
</application>

答案 5 :(得分:0)

我认为当你没有定义任何排除或包含它时会进行完整备份。

  

:指定要备份的一组资源,,而不是让系统默认备份您应用中的所有数据。如果指定元素,则系统仅备份使用此元素指定的资源。您可以使用多个元素

指定要备份的多组资源

答案 6 :(得分:0)

如果您要隐藏警告,但不需要从备份中排除任何文件,您也可以将tools:ignore="AllowBackup"添加到application中的AndroidManifest.xml标记中禁止显示警告(或使用查看警告详细信息时获得的Suppress按钮。)