android - SQLiteOpenHelper.onUpgrade 的调用问题

查看:99
本文介绍了android - SQLiteOpenHelper.onUpgrade 的调用问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

比如说现在数据库版本是1,然后此时我修改代码定数据库版本为5。 那么系统在调用onUpgrade的时候是只调用一次(oldVersion == 1, newVersion == 5)还是从1到5调用5次?
如果是我的数据库从1到5各有一个版本,那么升级的时候会怎么调用?
我个人的想法是这个方法只调用一次,但是有个问题想不明白。就是如果只是调用一次的话,那么我写onUpgrade方法时岂不是得写4个分支:从1到5,从2到5,从3到5,从4到5。那要是版本更高的话,岂不是累死人。因此觉得系统会这样调用:从1到2,从2到3,从3到4,从4到5,以后再有6的话就从5到6。但这样的话,onUpgrade不会只调用一次。
请求大神解答。

解决方案

只会调用一次。不管是从1到2,还是1到5

你可以这样写

switch(oldVersion) {
    case 1:
    //do something
    case 2:
    //do something
    case 3:
    //do something
    case 4:
    //do something
    case 5:
    //do something
    break;
}

这篇关于android - SQLiteOpenHelper.onUpgrade 的调用问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆