今天写sqlite更新,发现无论升级版本号还是卸载app重装,onUpgrade都不调用,甚至连onCreate都不调用。后来发现是我的写法有问题。
我建了一个基类来放数据库名和版本号,然后子类各自连接数据库
class BaseDao{
static final String dbName = "test_db";
static final int version = 1;
}
class TestDao extends BaseDao{
class TestHelper extends SQLiteOpenHelper{
TestHelper(){
super(context, dbName, null, version);
create table if not exists...
}
onCreate(){
}
onUpgrade(){
}
}
}
class TestDao2 extends BaseDao{
class TestHelper2 extends SQLiteOpenHelper{
TestHelper2(){
super(context, dbName, null, version);
create table if not exists...
}
onCreate(){
}
onUpgrade(){
}
}
}
一个helper对应一个数据库,假如以前调用过别的helper建立,更新了数据库,那其他地方的helper的onCreate和onUpgrade就不会调用了。
记一下犯的这个弱智问题