gpt4 book ai didi

java - 在 Playstore 上为您的 Android 应用程序提供升级时,是否可以对本地保存的数据运行代码/任务?

转载 作者:太空狗 更新时间:2023-10-29 14:18:33 25 4
gpt4 key购买 nike

所以我想知道使用 http://www.mapdb.org作为我的应用程序的存储机制(因为我相信它代表了 java 数据层的 future ,但我离题了)。

但是它还不支持模式演变。因此,在此期间,更改持久类的字段会导致它中断。升级后的应用程序不可能更新数据,因为它已经随新版本的类一起提供。

我需要的是一个钩子(Hook),当更新发生时触发,旧版本可以以临时格式(xstream xml)输出数据,以便新版本可以愉快地继续。 Playstore 支持这样的东西吗?

这样的问题 SQLite onUpgrade()似乎暗示有一个 onUpgrade,但因为此时类的模式已经破坏,我认为为时已晚。如果我提供自己的应用内准备,则无法保证它会在 Playstore 升级机制运行之前运行。

更新:我意识到 onUpgrade 是 sqlite 的东西,而不是引用问题中的 android 东西。我的错误

还要强调一下,这个问题涉及一个对象数据库,其中类的序列化版本很重要,而且它还不支持模式演化。

最佳答案

我建议使用 SharedPreferences 来存储上次启动时应用程序的版本,并将其与当前应用程序版本进行比较。如果您的 SharedPreferences 中存储的最后一个版本比当前版本旧,您可以执行升级任务。

您可以使用

检查您的应用程序版本
PackageInfo packageInfo = activity.getPackageManager()
.getPackageInfo(activity.getPackageName(), 0);
int versionCode = packageInfo.versionCode;

您的代码最终可能看起来像这样:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
int lastVersion = prefs.getInt("lastVersion", -1);
if (lastVersion != -1 && lastVersion < versionCode) {
// Perform update logic
prefs.edit().putInt("lastVersion", versionCode).commit();
}

当然,您也可以检查旧版本的特定编号,因此,如果您的应用从版本 15 升级到版本 18 需要一组特定的任务,您可以执行这些任务。

关于java - 在 Playstore 上为您的 Android 应用程序提供升级时,是否可以对本地保存的数据运行代码/任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19138848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com