gpt4 book ai didi

android - 在何处运行 Android 应用程序升级代码(如数据库迁移)

转载 作者:行者123 更新时间:2023-11-30 00:06:42 25 4
gpt4 key购买 nike

我将各种 session 信息存储在 SharedPreferences 中,我的数据库模型使用 GreenDao。在 Android 的重大更新期间,我很可能会将 SharedPreferences 替换为新的键值对,并将 GreenDao 替换为更新的模型。

无论如何,我想运行 1 个时间代码来清除两者。我应该将此代码放在 Android 中的什么位置?

最佳答案

你可以使用 a manifest-registered receiver for ACTION_MY_PACKAGE_REPLACED启动 JobIntentService 来完成工作。该广播是在您的应用程序升级后发送的。在 JobIntentService 中,您将检查是否需要迁移工作(例如,检查现有数据结构),如果需要,则执行该工作。

在许多情况下,这项工作会在用户结束升级后启动您的应用之前很久就完成。例如,如果用户在 Play 商店中为此应用启用了自动升级,则您的升级可能会在用户 sleep 时进行。在这种情况下,您的 JobIntentService 有足够的时间来完成所有事情。

但是,用户可能会在该工作完成之前启动您的应用,这可能是因为该工作正在进行中,也可能是因为 JobIntentService 尚未开始。例如,用户获取升级应用程序的通知,手动调用升级,然后立即从出现的屏幕中单击“运行”按钮。您将需要检测该情况并按您认为合适的方式进行处理。

关于android - 在何处运行 Android 应用程序升级代码(如数据库迁移),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48844317/

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