以下是该方案:
- 用户在设备1 上播放,达到第2级。此时,应用会使用描述“级别2”提交快照。
- 用户在设备2 上启动应用。该应用程序使用
open
同步数据并恢复进度。快照元数据描述正确(“级别2”)。
- 用户再次在设备1 上播放,此时间达到3级。然后,应用会使用描述“级别3”提交快照。
- 用户再次启动设备2 上的应用。该应用程序同步数据并使用
open
再次恢复进度。但是,快照中的元数据仍然是“级别2”,但实际数据是正确的 - 进度位于级别3.当我再次调用open()时,元数据才会更新。
醇>
为什么会这样?现在我的解决方法是连续两次调用open()
,这真的很糟糕。
修改
为了更清楚,这里的流程更短:
- 使用说明提交快照 - 让我们称之为快照A
- 使用说明提交快照 - 让我们称之为快照B
- 致电open() - >返回快照B 数据(正确),但快照A 描述(不正确)
- 再次调用open() - >使用快照B 说明(正确)返回快照B 数据(正确)
醇>
上述步骤之间没有其他任何事情。
所以我得到的问题是我总是需要打开两次才能获得正确的数据和描述。