android中sqlite数据库的更新问题

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

4个回答

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

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

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

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

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!