我在诺基亚 S40 上安装了一个 j2me 应用程序。一些配置数据存储在 RMS 中。是否可以用新版本覆盖已安装的应用程序?如何在新版本中保留 RMS?
如果可以的话,是否可以在升级时将其设置为默认操作,以避免用户误删除数据?
如果您的手机在不询问用户的情况下自动删除了 RMS 数据库,这是一个违反 MIDP 规范的巨大错误。
我假设您使用的是零售电话,而不是原型。
始终值得检查固件是否可以使用诺基亚 PC 工具进行升级。
如果升级过程询问用户是否删除旧的 RMS 数据,您可能无法阻止该问题被问到。
同步远程服务器上的配置数据并在它不可用时重新下载它通常是一种很好的做法。
从浏览器安装新版本时,应用程序会保留 RMS 并从设备中删除旧版本。
从蓝牙安装时,旧版本不会被删除,新版本不会获得旧的 RMS。
一些诺基亚 S60 设备会询问用户是否要保留 RMS。但对于 S40,这就是它的工作原理。
基本上,您无法控制安装和更新过程。电话环境很照顾。有些手机会询问用户是否保存RMS数据,但开发者或用户无法控制
如前所述,您无法控制安装过程,操作系统会询问用户是否要保留以前的数据或删除它。
但是,您可以在应用程序 RMS 数据中包含版本号,当您加载应用程序时,您可以检测它是否来自以前的版本并决定更新它或重置为新的默认值。
特别是在诺基亚 S40 上,本地安装程序会在升级过程中询问用户是否愿意保留应用程序数据。如果用户决定清除数据,您的 MIDlet 的 RMS 数据(以及文件系统上 MIDlet 的私有文件夹)将被删除。
您可能会在特定设备上找到解决此问题的方法,特别是如果您的 MIDlet 由制造商或运营商签名,但实际上没有万无一失且可移植的方法来保持数据升级。您应该考虑将数据保存在服务器上。