gpt4 book ai didi

android - 备份代理助手 : onRestore not getting called

转载 作者:行者123 更新时间:2023-11-29 16:45:03 26 4
gpt4 key购买 nike

我从这个链接安装了示例 BackupRestore。

https://android.googlesource.com/platform/development/+/0b3758ea4e53f9bfd0b112eaa4a7dd7b7f4040f5/samples/BackupRestore?autodive=0%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F

我无法恢复数据。

OnBackup 和 OnCreate 被调用,但 OnRestore 不被调用。

我能够备份:OnCreate 和 OnBackup 受到攻击,但 OnRestore 没有。

@Override
public void onRestore(BackupDataInput data, int appVersionCode,
ParcelFileDescriptor newState) throws IOException {
// Hold the lock while the FileBackupHelper restores the file from
// the data provided here.
synchronized (BackupRestoreActivity.sDataLock) {
super.onRestore(data, appVersionCode, newState);
}
}



public void onRestoreButtonClick(View v) {
Log.v(TAG, "Requesting restore of our most recent data");
mBackupManager.requestRestore(
new RestoreObserver() {
public void restoreFinished(int error) {
/** Done with the restore! Now draw the new state of our data */
Log.v(TAG, "Restore finished, error = " + error);
populateUI();
}
}
);
}

我已经尝试使用 adb 工具(除了 requestRestore),但它也不起作用。

adb shell bmgr restore [package]
adb uninstall [apkfile]
adb install [apkfile]

当我运行恢复时,我得到:

restoreStarting: 1 packages
restoreFinished: 0
done

但是OnRestore没有命中,数据没有恢复。

我正在使用 Android Studio 3.0。我在这上面花了很多时间。任何人都可以解释一下吗?

最佳答案

查看日志后,我注意到一条消息:

I/Backup:[KeyValueRateLimiter] [package] 的 K/V 备份被速率限制器中止。下一个=1519165401410,当前=1519088429345

这意味着直到 2018 年 2 月 20 日下午 5:23:21 才会进行备份。 Google Transport 的备份有速率限制,所以我打算尝试没有速率限制的 Local Transport。

更新:切换到本地交通工具似乎可行。在我的设备上卸载/重新安装应用程序后,它能够恢复这些值。

以下是我为让它工作所做的工作:

  • 将 BackupRestore 项目中的源文件复制到新项目中。
  • 从以下网站为 list 文件生成备份 key :https://developer.android.com/google/backup/signup.html
  • 运行 adb shell bmgr list transports 查看传输。
  • 运行 adb shell bmgr transport android/com.android.internal.backup.LocalTransport 将传输更改为本地(Google 传输将施加速率限制)
  • 运行 adb shell bmgr backup [package] -- 备份应用
  • 运行adb shell dumpsys backup查看挂起的备份文件
  • adb shell bmgr run

  • adb uninstall [包名]

  • adb install -t [apk file](为了调试我用了-t)

  • 检查安装期间是否恢复了这些值。

  • 您也可以点击“恢复上次数据”按钮,OnRestore 事件将被触发,上次备份将被恢复。

我为此苦苦挣扎。我希望这对某人有所帮助。

关于android - 备份代理助手 : onRestore not getting called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48873335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com