从排除的SharedPreference文件恢复一些XML字段(使用fullBackupContent)

时间:2016-12-27 16:54:55

标签: android google-cloud-messaging android-sharedpreferences android-backup-service

我有一个使用Google Cloud Messaging功能的应用,还有一个可选的fullBackupContent声明如下:

<application
    android:fullBackupContent="@xml/backup_rules">

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

push.xml包含GCM注册ID,应该从上面的备份中排除(某些信息HEREHERE)。但是不仅这个字段在首选项xml中...它还包含一些“内部”设置,如自定义推送类别启用/禁用或标记firstRunShowDialogAboutPushMessages(默认为true,解除对话框将标志设置为false)。 / p>

一切都很好,太好了......上面的代码目前在Google Play中,现在我打算发布更新。在测试期间,我注意到在更新的情况下也会执行此备份功能......有人可以确认它应该吗?应用目标:API24,测试设备:当前API25。 Doc说:

  

无论何时安装应用程序,都可以从Play商店,设备设置期间(系统安装以前安装的应用程序时)或运行adb install时恢复数据。安装APK后,但在应用程序可供用户启动之前,还原操作会发生。

在设备设置期间 adb ...是否意味着通过Google Play或GP版安装上的签名文件进行更新?没有任何帐户/设备恢复,只是更新?据我所知...现在,当我发布新版本时(即使没有排除push.xml),这个文件也不会被备份,因为当前有exlusion ...并且更新将“重置”app中的推送设置(启用所有选项/类别和firstRunShowDialogAboutPushMessages = true,默认情况下,即使用户选择退出)。

那我现在该怎么办?我可以将GCM注册ID移动到分开的SharedPreference xml文件中并仅排除这一个,但是下次更新时所有GCM设置都会丢失,所以很糟糕......任何想法,在这种情况下有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

我不确定你要求的是什么样的确认,但恕我直言,documentation已经是一个很好的确认来源。

那我现在该怎么办?

您可能还想在此SO post中查看建议的解决方案,并访问Testing Backup and Restore以获取有用的见解。