【问题标题】:Android SqliteAssetHelper copy user saved dataAndroid SqliteAssetHelper 复制用户保存的数据
【发布时间】:2015-09-17 06:34:26
【问题描述】:

我正在使用 SQLiteAssetHelper 实用程序来管理从我的资产文件夹复制数据库。在应用程序中,用户将一些数据输入数据库,一旦我升级数据库,所有数据都会被删除,因为我设置了setForcedUpgrade();。我听说您可以使用升级脚本,但我认为在这种情况下它们对我没有帮助,因为每个用户的数据都是唯一的。我该如何解决这个问题?

【问题讨论】:

    标签: android sqlite android-assets


    【解决方案1】:

    所有数据都被删除了,因为我设置了 setForcedUpgrade();

    那就不要打电话给setForcedUpgrade()

    我听说您可以使用升级脚本,但我认为在这种情况下它们对我没有帮助,因为每个用户的数据都是唯一的。

    升级脚本的主要目的是允许您在不损害现有数据的情况下升级架构,“因为每个用户的数据都是唯一的”。

    我该如何解决这个问题?

    使用升级脚本。或者,覆盖onUpgrade(),就像使用常规SQLiteOpenHelper 一样,作为onUpgrade() is not final

    【讨论】:

    • 我更喜欢使用 setForcedUpgrade(),所以我不必为所有数据库升级使用升级脚本。
    • @qwertz: "我宁愿使用 setForcedUpgrade()" -- 然后不允许用户修改数据,或者不要抱怨用户数据丢失。 setForcedUpgrade() 的这种行为是 clearly documented。 “所以我不必为所有数据库升级使用升级脚本”——正如我在回答中指出的那样,欢迎您覆盖 onUpgrade() 作为在 assets/ 中使用升级脚本的替代方法。
    猜你喜欢
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多