几天前,我遇到了一个错误,该错误是由db.close()
方法中的onCreate()
调用造成的。
更多人遇到了类似的问题,这在此处得到了解决:Cannot create Android SQLite database: PRAGMA error
我现在真的很感兴趣为什么会发生这种情况。我在android源代码中搜索了一段时间,但我找不到调用onCreate()
方法的位置或任何有关此方法的文档,以找出周围代码中SQLiteDatabase
对象发生的情况。致电onCreate()
。
有没有人对此有更多了解?或者知道在哪里阅读以了解更多相关信息? : - )
答案 0 :(得分:3)
最后,我找到了一段代码片段,解释了我的体验:
int version = db.getVersion();
if (version != mNewVersion) {
db.beginTransaction();
try {
if (version == 0) {
onCreate(db);
} else {
onUpgrade(db, version, mNewVersion);
}
db.setVersion(mNewVersion);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
onOpen(db);
success = true;
return db;
这是android源码中的一个代码片段。你可以从中看到,有许多事情发生在onCreate()和onUpgrade()上。所以一切都由周围的代码管理。你(有点奇怪的自言自语......)只需关心在数据库上做你的数据相关的东西。创建,交易和关闭由围绕它的代码处理。