android - SQLiteOpenHelper.onUpgrade 的调用问题
ringa_lee
ringa_lee 2017-04-17 16:45:39
[Android讨论组]

比如说现在数据库版本是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不会只调用一次。
请求大神解答。

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
PHP中文网

只会调用一次。不管是从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;
}
阿神

是只调用一次的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号