我目前使用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有机会进行备份之前,可能已经下载了更新。
任何建议都会有所帮助 - 我宁愿没有任何用户丢失所有数据。
答案 0 :(得分:0)
当您的应用更新到位时,您不会获得任何还原活动。在正常使用中您将看到恢复的仅时间是从干净状态安装您的应用程序时(在该设备上首次安装,或者在用户完全卸载之后)该应用程序,然后重新安装它。)
一些Android设备供应商已经对SharedPreferences的处理方式进行了更改;我想知道受影响的用户是否遇到了一些与之相关的罕见错误。