如何在用户更新应用时更新Sharedpreferences数据?

问题描述 投票:0回答:2

我只是想知道,假设我在Android应用程序中存储了一些内容,例如 - 在共享首选项中,假设当前版本的应用程序是n,并且在更新版本(n + 1)中,我将共享首选项对象的数据类型从List<String>更改为List<Object>,并且在下一个更新版本(n+2)我已经更新了对象的数据类型到List<Double>现在当用户将去玩商店更新他/她的应用程序,然后以前的数据将在那里所以我将不得不自己编写一些代码如果以前的版本是n并且当前版本是例如 - (n+2)现在我将通过编写if-else来检查代码中的共享优先级中的值以检查旧版本是什么。

在您更新Playstore上的任何Android应用程序时,您的开发人员使用的方法是什么?

还有没有任何可能性,例如用户当前安装了我的应用程序的(n+2)版本,现在用户希望下载我的应用程序的任何旧版本,例如版本n,现在是否有任何可能用户将能够安装此版本n应用程序还有版本(n+2)恢复数据,因为如果那将发生,然后在我的版本n代码,将没有if-else将对象的数据类型从List<double>更改为List<String>

我是一个新手,从来没有在Playstore上放任何应用程序但是去,这就是为什么要问。

谢谢

android version-control sharedpreferences
2个回答
1
投票

如果我完全改变属于某个偏好键的Object的类型,并且我要将其发布到生产中,那么我将只更改我使用的密钥以避免有条件地更新它的麻烦。这根本不应该发生。如果您正在彻底改变事物,那么用户无论如何都不会感到高兴。

要回答第二个问题,您无法直接降级Android应用,即从versionCode 3升级到versionCode 2。执行此操作的唯一方法是首先卸载当前版本,从而清除任何SharedPreferences,然后安装旧版本。如果您使用Google提供的备份功能,可能会恢复首选项,这让我回到了第一点:如果您要更改它,只需更改您正在使用的密钥即可。

(由于我所描述的原因,Google Play不允许用户降级。它将为用户提供与其设备兼容的最新版本。)


1
投票
  1. 不要担心降级情况,因为Google Play不支持它。即使用户手动尝试降级(即直接与用户共享.apk),无论如何都会清除共享首选项。
  2. 共享首选项没有迁移逻辑,就像我们对数据库的方式一样。所以这必须手动完成。
  3. 我的建议是使用不同的密钥而不是通过if else。总是这样做,因为我更喜欢保持我的代码干净,而不是共享首选项文件。
© www.soinside.com 2019 - 2024. All rights reserved.