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

lbl*_*asa 5 backup android

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

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

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

  1. 安装你的应用程序
  2. 确保启用备份/恢复
  3. 更改一些数据并调用dataChanged()
  4. 强制bmgr运行备份传递
  5. 卸载应用程序
  6. 重新安装应用程序并检查您的数据是否已恢复

一切似乎都很好,直到第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):没有恢复集 - 跳过恢复

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

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

lbl*_*asa 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 卸载和安装 - 只是巧合。因此,我的建议是不要期望在测试期间出现相同的行为和一致性。

  • 我可以在一台设备上完成所有这些工作。安装应用程序,设置数据,强制备份。执行恢复出厂设置。再次安装应用程序。恢复应该会成功。 (2认同)
  • 不恢复出厂设置就无法使用吗?仅当尝试在同一设备上恢复数据时才需要重新安装。 (2认同)