几天前,我遇到了一个错误,该错误是由于在 onCreate()
方法中调用 db.close()
引起的。
还有更多人遇到了类似的问题,这里解决了:Cannot create Android SQLite database: PRAGMA error
我现在真的很感兴趣为什么会发生这种情况。我在 android 源代码中搜索了一段时间,但找不到调用 onCreate()
方法的位置或任何有关此的文档来了解 SQLiteDatabase
发生了什么> 调用 onCreate()
的周围代码中的对象。
有人知道更多吗?或者知道在哪里阅读以了解更多相关信息? :-)
最佳答案
最后我找到了一个代码 fragment ,它解释了我所经历的事情:
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 源代码中的一个代码 fragment 。从中你可以看到,onCreate() 和 onUpgrade() 周围发生了很多事情。所以一切都由周围的代码管理。你(对自己说话有点奇怪......)只需要关心在数据库上做与数据相关的事情。创建、事务和关闭由其周围的代码处理。
关于android - 传递给 onCreate() 方法的 SQLiteDatabase 对象会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5324241/