我正在尝试备份/恢复应用的共享偏好设置,我使用Android备份服务执行此步骤:
Manifest.xml
代码中的<application>
<meta-data android:name="com.google.android.backup.api_key" android:value="My Key" />
添加了这个类:
public class MyBackupAgent extends BackupAgentHelper {
// The name of the SharedPreferences file
static final String PREFS = "my_preferences";
@Override
public void onCreate() {
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, PREFS);
addHelper(Utilities.SETTINGS_KEY, helper);
}
}
当设置值为共享首选项时,我这样做:
BackupManager backupManager = new BackupManager(context);
backupManager.dataChanged();
但如果我卸载/重新安装应用程序,则更改不适用...
答案 0 :(得分:2)
我的猜测是你忘了添加
android:allowBackup="true"
在 AndroidManifest.xml 文件中的<application>
标记内
答案 1 :(得分:2)
您必须分配一个帮助程序并将其添加到备份代理中,如下所示:
@Override
public void onCreate() {
FileBackupHelper helper = new FileBackupHelper(this,
TOP_SCORES, PLAYER_STATS);
addHelper(FILES_BACKUP_KEY, helper);
}
并考虑重写onBackup()和onRestore()方法。 见这里的解释: https://developer.android.com/guide/topics/data/keyvaluebackup.html#BackupAgentHelper
答案 2 :(得分:1)
当您致电dataChanged()
时,您只是通知系统某些内容已更改,此时它不会启动备份,请给它一些时间和Wi-Fi连接。如果设置了“自动恢复”,请在“备份并重置”下检查设备的设置。
确保您使用保存的相同首选项(使用相同的密钥)context.getSharedPreferences("my_preferences", Context.MODE_PRIVATE);
答案 3 :(得分:0)
我假设您已设置了类似的内容(取决于android版本,甚至取决于设备)
“云和帐户”->“备份和还原”->“自动还原”
打开。