java - BackupManager requestRestore() 已弃用,有什么替代方案?

标签 java android sharedpreferences backupmanager

有谁知道我现在可以使用什么来请求使用 BackupManager 在 Android 上同步数据?

文档声明该方法现已弃用,但不提供该方法的等效/替换调用。我知道同步是在应用程序首次安装时执行的,但似乎就是这样?

我希望使用 SharedPreferences 和 BackupManager 在连接到用户帐户的设备之间同步键/值对数据。

最佳答案

    BackupManager backupManager = (BackupManager) getSystemService(BACKUP_SERVICE);
    RestoreSession restoreSession = backupManager.beginRestoreSession();
    if (0 != restoreSession.getAvailableRestoreSets(new android.app.backup.RestoreObserver() {
        @Override
        public void restoreSetsAvailable(RestoreSet[] result) {
            if (result != null && result.length > 0) {
                if (0 != restoreSession.restoreAll(result[0].token, new android.app.backup.RestoreObserver() {
                    @Override
                    public void restoreFinished(int error) {
                        Log.d(TAG, "succeed to restoreAll");
                    }
                })) {
                    Log.d(TAG, "fail to restoreAll");
                    restoreSession.endRestoreSession();
                }
            } else {
                Log.d(TAG, "restore database is empty");
                restoreSession.endRestoreSession();
            }
        }
    })) {
        Log.d(TAG, "fail to getAvailableRestoreSets");
        restoreSession.endRestoreSession();
    }

关于java - BackupManager requestRestore() 已弃用,有什么替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53818166/

相关文章:

java - 如果 Servlet 在请求处理程序中检查给定的 session 属性,它是否为 "secure"?

java - 澄清对 Action-event、构造函数的理解

java - 替换新文本文件中的一行

java - 在“设置”-“Android Studio”-“Java”中启用“不显示应用程序的NotificationListenerService”

android - 在 ConstraintLayout 中对 Google map 进行动画处理会使应用程序卡住

android - 如何从已经运行的服务中获取数据?

java - 使用jmeter执行简单的java文件

android - 在多用户应用程序上存储首选项

android - 共享首选项不能在 android 中与 intent 一起使用

java - 我在 3 个 Activity 中遇到一些问题,无法传递到另一个类(class)并解锁级别