2

我目前已实施 BackupAgentHelper 来备份 SharedPreferences。但是,有时当我发布更新时,我会收到来自用户的消息,说更新导致其 SharedPreferences 中的数据被完全擦除。经过调查,可能导致它的唯一原因是 BackupAgentHelper,尽管实现相当标准,所以我不完全确定为什么会这样。

public class CloudBackup extends BackupAgentHelper {

 static final String MY_PREFS_BACKUP_KEY = "ACNLPrefs";

 @Override
 public void onCreate() {

     SharedPreferencesBackupHelper helper =
             new SharedPreferencesBackupHelper(this, "ACNLCaught",
                     "ACNLVersion",
                     "ACNLSort");
     addHelper(MY_PREFS_BACKUP_KEY, helper);
 }

}

由于它在更新后立即发生(这也不是 1 个特定更新,每次更新后似乎都会发生在极少数用户身上),我只能假设它与 SharedPreferences 何时恢复有关。如果用户安装了应用程序,生成了大量数据,然后很快就收到了更新,我猜可能在 BackupAgent 有机会进行备份之前就已经下载了更新。

任何建议都是最有帮助的——我不希望任何用户丢失他们的所有数据。

4

1 回答 1

0

当您的应用更新到位时,您不会获得任何恢复活动。在正常使用中您会看到恢复的唯一一次是当您的应用程序从干净状态安装时(无论是在该设备上首次安装,还是在用户完全卸载该应用程序然后重新安装它之后) )。

一些 Android 设备供应商对 SharedPreferences 的处理方式进行了更改;我想知道受影响的用户是否遇到了一些与此相关的罕见错误。

于 2014-11-20T02:46:29.427 回答