gpt4 book ai didi

android - 为什么发布升级会重新安装应用程序并删除内部数据存储?

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

我开发了应用程序,然后在 Android Market 上发布了它。在进行多项改进后,我为该应用程序生成了升级。

升级已成功发布到Android Market,设备已更新。尽管如此,该应用程序尚未在用户设备上升级;它已被删除并再次安装,丢失了应用程序存储在内部存储器上的数据。

如何发布将安装在用户设备上并保留应用程序数据的应用程序升级?如何发布应用程序的升级以仅升级应用程序而不重新安装它?

我的应用程序从 Android 2.0 (API 5) 运行。

最佳答案

如果您有一个数据提供者并且您遵循其中一个示例,那么您的代码中可能有一个 DATABASE_VERSION。除此之外,可能还有类似这样的东西:

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
LogUtils.w(mContext, "Processor", "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS "+REST_TABLE_NAME);
onCreate(db);
}

这意味着如果您在更新代码时更改 DATABASE_VERSION,它将删除表并从头开始重新创建它们。如果是这种情况,您有两个选择:

1) 不要更改 DATABASE_VERSION。当然,这只有在您没有更改架构的情况下才有意义,但您就可以了。

2) 为onUpgrade 编写迁移代码。您可以检查旧版本的数据库并编写代码以将数据迁移到新模式。这可能很困难,但如果您的应用包含大量用户生成的数据,那是值得的。

编辑:需要说明的是,在这种情况下,您的应用程序并没有被重新安装,但是因为您的数据库被重新创建,数据被销毁,所以它可能看起来像是被重新安装。不过,您的共享首选项在升级时应该保持不变。

关于android - 为什么发布升级会重新安装应用程序并删除内部数据存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5315376/

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