u013240038
孙晓凯
2015-11-17 09:49
采纳率: 100%
浏览 1.9k

android中sqlite数据库的更新问题

当我们的apk中的数据库更新的时候,我们会在onUpgrade()中修改版本号,这样用户
升级的时候就可以更新数据库了,但是如果此时新的用户安装此应用的话,那不是还是以前的旧版本的数据库(因为第一次安装只会执行onCreate()),这不是有问题吗,如果想让新用户也用新版本的数据库,而且老用户的数据不会丢失怎么办呢???

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • stone_you
    stone_you 2015-11-20 07:31
    已采纳

    继承SQLiteOpenHelper后需要在构造方法里指定当前db的版本号super(context, DATABASE_NAME, null, VERSION);

    SQLiteOpenHelper在读取db时发现老的版本号小于当前版本号时,会执行onUpgrade()

    点赞 评论
  • qq_32896539
    qq_32896539 2015-11-17 15:14

    可以用电脑上的手机助手解决,求1积分

    点赞 评论
  • q812002440
    cindyCode 2015-11-17 16:11

    楼主多虑了,把数据库的版本升级后,新用户安装的时候也是新版本的数据库。老用户安装应用会用新的数据库代替老数据库,数据也还在的。

    点赞 评论
  • wanghang1208
    wanghang1208 2015-11-18 01:16

    1、假设你的应用为A,老版本数据库对应的apk为A1.0,新版本数据库对应的apk为A2.0。

    2、老用户安装了A1.0,然后升级成了A2.0,没有问题。

    3、那么新用户呢?如果他是直接安装了A1.0,那么和2一样,可以升级到A2.0;如果他是直接安装了A2.0,那就是新版本的数据库。

    点赞 评论

相关推荐