2

我正在尝试使用 data backup api在我的应用程序中实现数据备份。

辅助类中的onBackup方法永远不会被调用。BackupAgent该文件说,onBackup()将在未来的某个时间调用。有没有具体的时间onBackup会被调用?每天只调用一次吗?

我尝试使用以下命令强制在模拟器和 Nexus 7 设备上进行数据备份:

adb shell bmgr backup <package>
adb shell bmgr run

在模拟器上调用了该onBackup()实现,但在设备上从未调用过它。bmgr工具可以在设备上运行吗?请帮我理解。

4

2 回答 2

1

检查您的 Manifest 文件以查看您在应用程序下是否拥有项目android:allowBackup="true"FileBackupAgentandroid:backupAgent的正确路径。此外,您的元数据应该有您的注册密钥,例如android:value="your-registerd-key"

确保您的设备已连接到 Wi-Fi 网络。另外,请确保在您的设备设置中,备份和重置需要选中“备份我的数据”,并且“备份帐户”具有有效的 gmail 帐户,并选中“自动恢复”。

此外,在命令窗口中,您的传输设置应为:*com.google.android.backup/.BackupTransportService

您可以通过键入以下内容来查看: bmgr list transports 如果传输设置为本地,则输入:adb shell bmgr transport com.google.android.backup/.BackupTransportService

用于在https://www.google.com/settings/dashboardbmgr中“启动”备份的其他命令是:

 adb shell bmgr enabled 
 adb shell bmgr wipe "<package_name>"
 adb shell bmgr backup "<package_name>"
 adb shell bmgr run

刷新您的https://www.google.com/settings/dashboard以查看最新的备份时间戳

于 2016-02-11T22:36:18.267 回答
1

adb shell bmgr transport android/com.android.internal.backup.LocalTransport 

将传输更改为本地(即使文档

https://developer.android.com/guide/topics/data/testingbackup.html#TestingBackup

建议谷歌传输,它会施加备份限制,并且您只能每 24 小时进行一次备份)。

运行此命令以启动备份:

adb shell bmgr run

“运行”命令会立即启动任何计划的备份操作,而无需等待通常的等待时间来批量处理数据更改。

运行此命令以查看待处理的备份:

adb shell dumpsys backup
于 2018-02-19T23:42:46.037 回答