我的应用程序中有六个sqliteOpenHelpers,我需要创建一个新表。通常,我在onCreate()和onUpgrade()以及dbVerionCode中创建它。 如果我直接安装它会很好,但是Table通过Overinstall创建失败。调用sqliteOpenHelpers'onUpgrade中的任何一个。
我尝试过制作一个BaseSqliteOpenHelper并在其中创建表,也失败了。 我怀疑这是Android的一个错误,使用这六个sqliteOpenHelpers,我该如何创建一个新表? `
public class BasePersistent extends SQLiteOpenHelper {
public BasePersistent(Context context) {
super(context, ConstC.DB_NAME_C, null, ConstC.VERSION_C);
}
@Override
public void onCreate(SQLiteDatabase db) {
IMEDBFactory.onCreate(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { LogUtilC.LogError("dbVersion:"+db.getVersion()+this.getClass().getName().toString());
if (newVersion >= 7) {
db.execSQL("CREATE TABLE IF NOT EXISTS IMETokenList ('userToken' TEXT NOT NULL PRIMARY KEY,'sendMsgToken' TEXT ,'sendMsgTokenExpire' TEXT,'groupWriteToken' TEXT,'groupWriteTokenExpire' TEXT,'groupGetToken' TEXT,'groupGetTokenExpire' TEXT)");
}
}
public class IMETokenPersistent extends BasePersistent {
public IMETokenPersistent(Context context) {
super(context);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
LogUtilC.LogError("dbVersion:" + db.getVersion() + this.getClass().getName().toString());
if (newVersion >= 7) {
//创建Token表
db.execSQL("CREATE TABLE IF NOT EXISTS IMETokenList ('userToken' TEXT NOT NULL PRIMARY KEY,'sendMsgToken' TEXT ,'sendMsgTokenExpire' TEXT,'groupWriteToken' TEXT,'groupWriteTokenExpire' TEXT,'groupGetToken' TEXT,'groupGetTokenExpire' TEXT)");
}
}
}