SQLiteOpenHelper.getWritableDatabase的用法

时间:2011-10-25 11:24:10

标签: android design-patterns

根据http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html#getWritableDatabase%28%29

  

成功打开后,数据库将被缓存,因此您可以调用它   每次需要写入数据库时​​都有方法。

请考虑以下代码段:

SQLiteDatabase db1 = openHelperImplObj.getWritableDatabase();
// do something with db1
SQLiteDatabase db2 = openHelperImplObj.getWritableDatabase();
// do something with db2
db2.close();
// do something with db1
db1.close();

我认为第二次调用getWritableDatabase()将返回相同的缓存数据库( db1 ),db2.close()行不会导致任何问题到后来发生的db1操作?如果是这样,建议的方法是避免这种问题,因为第二次呼叫可能发生在任何地方,即在不同的功能或甚至在不同的类别中。

1 个答案:

答案 0 :(得分:0)

使用db openHelperImplObj.getWritableDatabase();打开数据库时 然后跟踪事情检查

1>如果未创建数据库,则创建数据库并将其打开以进行写入模式,否则先创建然后打开。

2>我已观察到的第二个也是最重要的,如果已经创建了数据库,那么它就会打开它,但如果它已经打开,它就什么都不做,That means it occupy the old instance of data 打开数据库的基础,直到你关闭它。这就是为什么一旦它关闭数据库的更好的做法 使用

希望你有