当我在Google Play商店中更新时,如何确保用户保留其SQLite数据?

时间:2019-01-15 05:34:43

标签: android sqlite google-play target-sdk

我想将目标版本和编译版本从26提高到28。这是因为用户向我发送了电子邮件,并说该应用无法在运行Andoird 9的手机上正常运行。

一旦我升级了目标版本并编译了版本,我就使用各种设备对应用程序进行了测试,看来在不同的设备和仿真器上一切都可以正常运行。

但是,我担心使用新的SDK目标和编译版本时,用户可能会在更新时丢失数据。我的DatabaseHelper类扩展了SQLiteOpenHelper。

当我使用更高的目标和编译版本进行更新时,是否需要做任何事情来确保保留其数据库表?

注意:我的数据库架构与更新完全相同。

3 个答案:

答案 0 :(得分:1)

如果目标用户使用现有SDK(SDK较低)来更新应用程序,则更改目标SDK版本不会丢失其数据。

您可以执行以下操作来验证这是从Play商店安装previous build(SDK较低),然后在alpha release(具有更新的目标SDK)中上传新版本,并将自己添加为测试人员。当Alpha版本发布时,它将为您提供在previous app(目标sdk较低)上更新应用程序的选项。

当您点击更新按钮时,您将获得结果。

这样您可以进行验证。

答案 1 :(得分:0)

如果您使用Room来处理数据库操作,则迁移非常容易

Follow this office android developer guide

如果您不使用Room,那么为此please read this medium blog

不容易迁移(如果您将数据库更新为很多)

已编辑:如您所述,您对数据库没有任何更改

按照步骤进行测试,您不会丢失100%验证的数据

1)从playstore下载您的应用。

2)更改代码并在gradle中更新您的应用版本。

3)制作一个经过签名的版本(具有与playstore apk中使用的密钥库相同的密钥库),以便您拥有更新的版本。

4)将更新后的版本apk放入手机中并进行安装/更新(确保可以从Playstore下载该应用的旧版本)。

5)现在您的应用已更新,您可以检查/测试所需的任何内容。

答案 2 :(得分:0)

如果您希望即使删除并重新安装应用程序也可以保存应用程序数据,则可以使用自android 6.0起可用的备份功能

将这些行添加到<application>标记内的清单中:

android:allowBackup="true"
android:fullBackupContent="true"

最终结果应如下所示:

<application
        android:name="your.app.bundle"
        android:allowBackup="true"
        android:fullBackupContent="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity  />
        <activity  />
    </application>