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 '
答案 0 :(得分:1)
只有当发送给构造函数的版本代码发生更改时,才会调用Android SQLite数据库的生命周期方法。
调试时,请尝试动态更改版本以触发生命周期方法,而不是设置常量。
Connectivity(Context context, int version){
super(context,db_name , null, version);
cn = context;
toast.message(cn, "constructor called");
}