[英]Backup/restore shared preferences android
我正在尝试备份/恢复我的应用程序的共享首选项,我使用 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();
但是如果我卸载/重新安装应用程序,更改将不适用...
我猜你忘了添加
android:allowBackup="true"
在AndroidManifest.xml文件中的<application>
标签内
您必须分配一个助手并将其添加到备份代理中,如下所示:
@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
当您调用dataChanged()
您只是通知系统某些内容已更改,此时它不会开始备份,请给它一些时间和无线网络连接。 如果设置了“自动恢复”,请在“备份和重置”下检查您的设备设置。
确保您写入与保存context.getSharedPreferences("my_preferences", Context.MODE_PRIVATE);
相同的首选项(使用相同的键context.getSharedPreferences("my_preferences", Context.MODE_PRIVATE);
我假设你有这样的设置(取决于安卓版本,甚至在设备上)
“云与账户”->“备份与还原”->“自动还原”
打开。 如果没有,打开它可能会解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.