Android备份/恢复示例不起作用?

时间:2012-11-30 14:27:41

标签: android backup

我遇到了同样的问题 - 正如谷歌开发者小组所发现的那样。我引用Chris Grebeldinger(原作者)的非常详细的解释。

“在文档中: http://developer.android.com/guide/topics/data/backup.html#Testing

它建议通过以下方式测试应用程序的备份/恢复:

  1. 安装您的应用
  2. 确保启用备份/恢复
  3. 更改一些数据并调用dataChanged()
  4. 强制bmgr运行备用传递
  5. 卸载应用
  6. 重新安装应用并检查您的数据是否已恢复
  7. 直到步骤4,我才在日志中看到这一切:

    V / BackupManagerService(306):removePackageParticipantsLocked:uid = 10078#1 V / BackupManagerService(306):删除com.example.app

    的备份知识

    然后是第5步:

    V / BackupManagerService(306):restoreAtInstall pkg = com.example.app token = 21 V / BackupManagerService(306):没有恢复集 - 跳过恢复

    因此,当卸载应用程序时,显然备份的数据会被破坏,这意味着官方测试工作流程无法正常工作?测试这个的最佳方法是什么?“

    是否有人设法正确运行并测试此样本?

2 个答案:

答案 0 :(得分:2)

再次感谢Chris Grebeldinger,他回答了我对google android开发者小组中原帖的回复。

它是如何运作的:

  • 在设备A中安装应用程序。
  • 在设备A中设置任何数据或首选项。
  • 在设备A上强制备份。(使用adb shell bmgr backup [app_name],adb shell bmgr run)。
  • 抓住第二台设备B.
  • 在设备B上执行恢复出厂设置。
  • 重置后,再次安装该应用程序。
  • 恢复操作应该成功。

令我恼火的是,Google Android文档中显示的“步骤”似乎非常详细,决定省略它看似必要的必要步骤。

正如克里斯在答复中提到的那样,我希望这有助于其他找到同样问题的人。

感谢。

编辑:

在使用不同设备进行进一步测试后,似乎整个备份/恢复过程可能因制造商和设备而异。我可以使用Google的文档方法测试示例应用程序,即使用nexus 7卸载和安装 - 只是巧合。因此,我的建议是在测试期间不要期望相同的行为和一致性。

答案 1 :(得分:1)

尝试使用模拟器进行测试。只需卸载并安装应用程序,带有API 22的Nexus 5就可以为我工作。

完整过程:

  1. 按adb启用备份:bmgr enable true
  2. 设置本地运输: bmgr transports android/com.android.internal.backup.LocalTransport
  3. 运行您的应用并准备备份
  4. 运行备份:bmgr backup <package> & bmgr run
  5. 从模拟器中卸载应用
  6. 再次安装应用程序 - 自动恢复
  7. 提示:查找logcat for&#34; backup&#34;活动