android - SQLiteOpenHelper.onUpgrade 的调用问题
本文介绍了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屋!
查看全文