SQLiteOpenHelper dbOpenHelper = new (ctx, nameofdb);
SQLiteDatabase db = dbOpener.getWritableDatabase();
我是否必须在这两者上调用.close()
,或者只是其中一个就足够了?如果是,那么哪一个?
SQLiteDatabase
SQLiteOpenHelper
我遇到的问题是我在Eclipse中没有在DDMS视图中看到一个特定的行,但是当我使用Cursor来获取它时,它表明我确实有这个条目。所以我想知道它可能是由于没有正确关闭数据库造成的?任何可以提供帮助的人都会很棒。谢谢!
答案 0 :(得分:5)
如果您查看SQLiteOpenHelper.close()的文档...
public synchronized void 关闭()
关闭所有打开的数据库对象。
它不会关闭SQLiteOpenHelper
,而是关闭数据库。
除此之外,如果你的代码正确,你可以避免直接直接处理数据库对象。
例如,如果您有一个查询,您可以定期使用适配器填充游标来填充视图,请在SQLiteOpenHelper
类中创建一个方法并将查询放入其中。
换句话说,不要在主代码中获得对实际数据库的引用,只需让SQLiteOpenHelper
为您完成所有事情。