SQLiteOpenHelper类的onCreate方法什么时候被执行--只有database.db不存在的时候
来源:互联网 发布:win7 vb无法读取mdb 编辑:程序博客网 时间:2024/05/18 17:23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public
class
MyHelper
extends
SQLiteOpenHelper {
public
static
final
String DB_NAME =
"schedule.db"
;
public
static
final
int
VERSION =
1
;
public
static
final
String DATABASE_CREATE =
"这里是创建表的语句"
;
public
MyHelper(Context context) {
super
(context, DB_NAME,
null
, VERSION);
}
@Override
public
void
onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
}
@Override
public
void
onUpgrade(SQLiteDatabase db,
int
oldVersion,
int
newVersion) {
db.execSQL(
"drop table if exists "
+ TABLE_NAME);
onCreate(db);
}
}
比如说像上面这样定义一个MyHelper 类继承SQLiteOpenHelper ,那么我在其他的地方用到MyHelper这个类的时候,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public
class
DbAdapter {
private
final
Context mCtx;
private
MyHelper helper;
private
SQLiteDatabase db;
public
DbAdapter(Context ctx) {
this
.mCtx = ctx;
}
public
DbAdapter open()
throws
SQLException {
helper =
new
MyHelper(mCtx);
db = helper.getWritableDatabase();
return
this
;
}
public
void
close() {
helper.close();
}
}
MyHelper这个类中的onCreate方法什么时候被执行???
是在创建MyHelper对象的时候执行?
还是调用它的getWritableDatabase()方法执行?或者是其它什么时候执行?
我现在程序中onCreate方法不执行(我在onCreate方法里面添加Log.d()方法试过了,在LogCat里面没有输出我的调试信息,说明没执行到啊)。。。。。
原因:在调getReadableDatabase或getWritableDatabase时,会判断指定的数据库是否存在,不存在则调SQLiteDatabase.create创建, onCreate只在数据库第一次创建时才执行
因为你运行一次后已经有schedule.db这个数据库文件了,所以你之后都不会调用onCreate这个方法了,你把FileExploer里的数据库文件删除就OK了。
0 0
- SQLiteOpenHelper类的onCreate方法什么时候被执行--只有database.db不存在的时候
- SQLiteOpenHelper类的onCreate方法什么时候被执行
- SQLiteOpenHelper类的onCreate方法什么时候被执行
- [android]关于SQLiteOpenHelper的onCreate(SQLiteDatabase db)方法调用时机
- 关于SQLiteOpenHelper类的onCreate方法
- 关于SQLiteOpenHelper的onCreate(SQLiteDatabase db)方法调用时机的疑惑
- 关于SQLiteOpenHelper的onCreate(SQLiteDatabase db)方法调用时机的疑惑
- 关于SQLiteOpenHelper的onCreate(SQLiteDatabase db)方法调用时机的疑惑
- SQLiteOpenHelper 用单例模式实现后 onCreate 方法不执行的解决过程
- sqliteopenhelper继承类的oncreate函数调用时间
- SQLiteOpenHelper的onCreate和onUpgrade的区别
- SQLiteOpenHelper的oncreate与onupgrade的理解
- SQLiteOpenHelper调用onCreate函数的时机
- AppConext 的onCreate方法执行时机
- SQLiteOpenHelper 中什么时候调用 onCreate() , 什么时候调用 onUpgrade() ?
- Servlet的init()方法在什么时候执行
- Servlet的init()方法在什么时候执行
- Android 屏幕旋转后防止重新执行onCreate的方法。
- Mini2440烧写Linux系统
- POJ 3087
- C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别
- 第五天 链式A+B +回文链表
- HTML5 Web API:postMessage
- SQLiteOpenHelper类的onCreate方法什么时候被执行--只有database.db不存在的时候
- Mysql date的大于某一个时间点
- linux find命令
- 安卓在两个控件中间画一条竖线
- BFC
- LintCode之链表求和
- Sphinx的安装和yii框架的使用
- UVA 10566 Crossed Ladders (几何+二分)
- 7/27个人赛——感想