繁体   English   中英

备份/恢复共享首选项android

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM