警告应用更新的Android用户可能导致旧应用版本中的数据丢失?

我正在为Android编写游戏。 当用户完成一个级别时,如果他们输了,他们可以从下一级重启(即我需要存储一个整数来记住他们到达的级别)。 如果应用程序在播放期间中断,我将世界状态保存到磁盘(这是存储地图和游戏实体的复杂状态)。

我希望将来保持我的选择,以改变我的游戏代码和世界状态的保存/存储方式。 但是,我必须考虑用户手机上有旧版世界状态的情况,因为他们处于游戏中间,他们升级应用程序,现在应用程序无法加载世界状态。

必须编写代码以将旧版本的数据迁移到新版本的数据将是一件痛苦的事情,如果我有某些方法可以避免这种情况。 如果我能以某种方式要求用户在更新之前完成当前正在进行的游戏,那将是很好的。 可以这样做吗? 还有其他选择吗?

我不打算经常这样做。 我想在获得一些早期反馈的同时迭代地开发我的游戏,但如果我必须解决现在如何保存和恢复世界状态,这很难。

我希望这似乎不是一个愚蠢的问题,但是在PC或控制台上,完全可以拥有游戏中无法保存的游戏,或者只能在不同级别之间保存。 我在这里发现Android有点痛苦,因为你必须为所有游戏都有一个保存游戏策略。

您无法阻止用户升级应用程序,并且在安装(或升级)应用程序之前无法执行任何代码。

坦率地说,由于升级而丢失数据是不可接受的。 如果您使用SQLiteOpenHelper,您将自动获得有助于升级过程的好钩子。

我知道你有一个非常复杂的存档游戏设置,但尽量保持灵活,以便轻松升级。 有很多技术可以帮助你。

Android和PC完全不同 – 在PC上,您可以坐下来玩几个小时。 在Android上,您可以快速播放,然后执行其他操作。 或者,您玩游戏并接听电话,并被迫退出游戏。