SQLiteOpenHelper接口,访问覆盖方法' onCreate'

时间:2015-03-08 09:07:11

标签: android

public void onSave(View v){  // this is the activity which calls sqllite 
     Connectivity cn = new Connectivity(getApplicationContext());
     SQLiteDatabase sqlDb = cn.getWritableDatabase();
}

在我执行数据库操作的sqllite open helper类中   在下面的代码中,我无法访问" OnCreate"或" OnUpdate"方法,以及我的应用程序如何正常工作,没有任何异常或错误

public class Connectivity extends SQLiteOpenHelper {
final static String db_name="Attendence";
SQLiteDatabase sqlDb;
Context cn = null;
Connectivity(Context context){
    super(context,db_name , null, 1);
    cn = context;
    toast.message(cn, "constructor called");

}
@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    try{
    db.execSQL("create table class_ref(id number primarykey autoincrement," +
            "class_name varchar(20),no_students int,reg_no text");
    }catch(Exception e){
        toast.message(cn, "EXCEPTION:"+e.toString());
    }
    toast.message(cn, "onCreate method called");    
}

我没有收到上面宣布的任何一个Toast消息

@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
    // TODO Auto-generated method stub
    try{
        toast.message(cn, "onupgrade called");
        db.execSQL("drop table class_ref if exists");
        onCreate(db);
    }catch(Exception e){
        toast.message(cn, "EXCEPTION:"+e.toString());
    }toast.message(cn, "on update method called");  
} 

}

输出:

toast message 'constructor called '

1 个答案:

答案 0 :(得分:1)

只有当发送给构造函数的版本代码发生更改时,才会调用Android SQLite数据库的生命周期方法。

调试时,请尝试动态更改版本以触发生命周期方法,而不是设置常量。

Connectivity(Context context, int version){
    super(context,db_name , null, version);
    cn = context;
    toast.message(cn, "constructor called");
}