SQLiteOpenHelper dbOpenHelper = new (ctx, nameofdb);
SQLiteDatabase db = dbOpener.getWritableDatabase();
我是否必须对这两个都调用 .close()
,还是只调用其中一个就足够了?如果是,那么是哪一个?
SQLiteDatabase
SQLiteOpenHelper
我遇到的问题是我在 Eclipse 的 DDMS View 中看不到一个特定的行,但是当我使用 Cursor 获取它时,它显示我确实有那个条目。所以我想知道这可能是由于没有正确关闭数据库造成的?任何可以提供帮助的人都会很棒。谢谢!
最佳答案
如果您查看 SQLiteOpenHelper.close() 的文档...
public synchronized void close ()
Close any open database object.
它不会关闭 SQLiteOpenHelper
,它会关闭数据库。
除此之外,如果您的代码正确,您可以完全避免直接处理数据库对象。
例如,如果您有一个查询,您经常使用它来获取适配器的游标以填充 View ,请在您的 SQLiteOpenHelper
类中创建一个方法并将查询放入其中。
换句话说,不要在主代码中获取对实际数据库的引用,只需让 SQLiteOpenHelper
为您做所有事情。
关于android - 我应该在 SQLiteDatabase 和 SQLiteOpenHelper 上调用 .close(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9122803/