Java 备份代理服务器导致数据丢失
我目前已实施BackupAgentHelper来备份SharedReference。然而,偶尔当我发布更新时,我会收到用户的消息,说更新导致他们的SharedReference中的数据被完全擦除。经过调查,唯一可能导致这种情况的是BackupAgentHelper,尽管实现相当标准,所以我不完全确定这是为什么Java 备份代理服务器导致数据丢失,java,android,backup-agent,Java,Android,Backup Agent,我目前已实施BackupAgentHelper来备份SharedReference。然而,偶尔当我发布更新时,我会收到用户的消息,说更新导致他们的SharedReference中的数据被完全擦除。经过调查,唯一可能导致这种情况的是BackupAgentHelper,尽管实现相当标准,所以我不完全确定这是为什么 public class CloudBackup extends BackupAgentHelper { static final String MY_PREFS_BACKUP_KEY
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);
}
}
由于它发生在更新之后(这也不是一个特定的更新,它似乎发生在每次更新之后的极少数用户身上),因此我只能假设它与恢复SharedReference的时间有关。如果一个用户安装了该应用程序,生成了大量数据,然后很快就收到了更新,我想很有可能在BackupAgent有机会进行备份之前下载了更新
任何建议都会非常有用-我不希望任何用户丢失他们的所有数据。当你的应用程序更新到位时,你不会得到任何恢复活动。在正常使用情况下,您看到恢复的唯一时间是从干净状态安装应用程序时(在该设备上首次安装,或者在用户完全卸载应用程序后,然后重新安装)
一些安卓设备供应商已经改变了SharedReference的处理方式;我想知道受影响的用户是否遇到了一些与此相关的罕见错误。您能找到解决此问题的方法吗?